JAVASCRIPT REDUCER未与上下文一起累积



构建一个演示预算,我的代码正在运行,但费用数组没有在下面的函数中累积。

{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

相关内容

最新更新