4 回答

TA貢獻1757條經驗 獲得超8個贊
初始架構Array.reduce實際上取決于您。
const data = [{
number_1: 10,
number_2: 20
},
{
number_1: 15,
number_2: 5
},
{
number_1: 15,
number_2: 35
},
];
const res = data.reduce((acc, {
number_1,
number_2
}) => {
acc.sum_number_1 += number_1;
acc.sum_number_2 += number_2;
return acc;
}, {
sum_number_1: 0,
sum_number_2: 0
})
console.log(res)
這是forEach
const data = [{
number_1: 10,
number_2: 20
},
{
number_1: 15,
number_2: 5
},
{
number_1: 15,
number_2: 35
},
];
const res = {
sum_number_1: 0,
sum_number_2: 0
};
data.forEach(({
number_1,
number_2
}) => {
res.sum_number_1 += number_1;
res.sum_number_2 += number_2;
})
console.log(res)

TA貢獻1826條經驗 獲得超6個贊
這是你想要的嗎?
data.reduce((acc, {number_1, number_2}) => {
acc.sum_number_1 += number_1;
acc.sum_number_2 += number_2;
return acc;
},{sum_number_1: 0, sum_number_2: 0})

TA貢獻1789條經驗 獲得超10個贊
您可以采用動態方法來匯總對象的所有屬性。
const
data = [{ number_1: 10, number_2: 20 }, { number_1: 15, number_2: 5 }, { number_1: 15, number_2: 35 }],
result = data.reduce((r, o) => {
Object.entries(o).forEach(([k, v]) => r[k] = (r[k] || 0) + v)
return r;
});
console.log(result);

TA貢獻1842條經驗 獲得超13個贊
嘗試這樣:
data = [
{ number_1: 10, number_2: 20 },
{ number_1: 15, number_2: 5 },
{ number_1: 15, number_2: 35 },
];
const reducer = (accumulator, currentValue) => {
accumulator.sum_number_1 += currentValue.number_1;
accumulator.sum_number_2 += currentValue.number_2;
return accumulator;
};
console.log(data.reduce(reducer, { sum_number_1: 0, sum_number_2: 0 }));
使用reduce函數時,初始值被構造為要返回的最終對象。這些數字在回調函數中進行求和,然后返回結果。
添加回答
舉報