我想獲得每個屬性的總和值
const dataArr = [
{ prop1 : 1,
prop2 : 10,
prop3 : 100
},
{ prop1 : 2,
prop2 : 20,
prop3 : 200
},
{ prop1 : 3,
prop2 : 30,
prop3 : 300
},
]
const result = dataArr.reduce( ( acc, curr ) => {
return {
prop1 : acc curr.prop1,
prop2 : acc curr.prop2,
prop3 : acc curr.prop3
}
},0)
console.log(result)
// expected { prop1 : 6, prop2 : 60, prop3 : 600 }
// but got { prop1 : 3, prop2 : 30, prop3 : 300 }
所以,我試過這樣減少,但它沒有用。我該如何解決?
uj5u.com熱心網友回復:
const dataArr = [
{ prop1 : 1,
prop2 : 10,
prop3 : 100
},
{ prop1 : 2,
prop2 : 20,
prop3 : 200
},
{ prop1 : 3,
prop2 : 30,
prop3 : 300
},
];
let sum = dataArr.reduce((a,b)=>({
prop1: a.prop1 b.prop1,
prop2: a.prop2 b.prop2,
prop3: a.prop3 b.prop3,}));
console.log(sum);
uj5u.com熱心網友回復:
如果您有未知數量的屬性,您可以使用嵌套的 reduce:
const dataArr = [{
prop1: 1,
prop2: 10,
prop3: 100
},
{
prop1: 2,
prop2: 20,
prop3: 200
},
{
prop1: 3,
prop2: 30,
prop3: 300
},
]
const result = dataArr.reduce((acc, curr) => {
return Object.entries(curr).reduce((iAcc, [k, v]) => {
iAcc[k] = (iAcc[k] ?? 0) v;
return iAcc;
}, acc)
})
console.log(result)
如果某些元素缺少屬性,這也有效
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/413809.html
標籤:
