Skip to content

Instantly share code, notes, and snippets.

@viniceosm
Created November 25, 2019 13:36
Show Gist options
  • Save viniceosm/107930f90584d06f87d093e9291a8580 to your computer and use it in GitHub Desktop.
Save viniceosm/107930f90584d06f87d093e9291a8580 to your computer and use it in GitHub Desktop.

controlFine

requisitos

  • set saldo atual
  • add gastos mensais
  • edit gastos mensais (editar pois pode ter mudado ou alguns deles pode ter variações)
  • set salario
  • edit salario (para editar o salario recebido no mes, pois pode ter alterado/desconto xD)
  • add outros gastos
  • add outros créditos

exemplo

let saldo = 2000;
let gastosMensais = [
	{ desc: 'Gasto A', v: 1700 }
	, { desc: 'Gasto B', v: 160 }
];
let salario = 3000;
let outrosGastos = [
	{ desc: 'Lanche A', v: 15 }
	, { desc: 'Lanche B', v: 17 }
]
let outrosCreditos = [
	{ desc: 'Credito A', v: 400 }
]

// 2000 - ( 1700 + 160 ) + 3000 - (15 + 17) + 400
saldo = calcSaldo(saldo, gastosMensais, salario, outrosGastos, outrosCreditos);

console.log('funcao:', saldo);
console.log('prova real ae:', 2000 - ( 1700 + 160 ) + 3000 - (15 + 17) + 400);

function calcSaldo(saldo, gastosMensais, salario, outrosGastos, outrosCreditos) {
	let res;

	let vGastosMensais = gastosMensais.map(o => -1 * o.v);
	let vOutrosGastos = outrosGastos.map(o => -1 * o.v);
	let vOutrosCreditos = outrosCreditos.map(o => o.v);

	res = ([ saldo, salario, ...vGastosMensais, ...vOutrosGastos, ...vOutrosCreditos ]).reduce((a, b) => a + b);

	return res;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment