构建一个演示预算,我的代码正在运行,但费用数组没有在下面的函数中累积。
{value => {
const totalExpense = value.expenses.length > 0 ? (
value.expenses.reduce((acc, curr) => {
acc += curr.amount
return acc
}, 0)) : 0;
console.log(totalExpense);
console.log(value.expenses);
在我的机器上工作。
很难说不知道数据是什么样子的,所以我在下面尝试了一下:
const value = {
expenses: [{amount: 1}, {amount: 2}]
}
const totalExpense = value.expenses.length > 0 ? (
value.expenses.reduce((acc, curr) => {
acc += curr.amount
return acc
}, 0)) : 0;
console.log(totalExpense);
console.log(value.expenses);
您还可以通过以下更改来进一步简化它:
const value = {
expenses: [{amount: 1}, {amount: 2}]
}
// no need to check length
const totalExpense = value.expenses.reduce((acc, curr) => acc + curr.amount, 0);
console.log(totalExpense);
console.log(value.expenses);
{value => {
const totalExpense = value.expenses.length > 0 ? (
value.expenses.reduce((acc, curr) => {
acc += parseInt(curr.amount)
return acc
}, 0)) : 0;
console.log(totalExpense);
console.log(value.expenses);
curr.amount不是以整数形式交叉的,因此需要对其进行解析Int’d