- 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
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;
}