繁体   English   中英

我如何使用reduce来计算对象中一个值的总和

[英]How do I use reduce to calculate the total of a value in an object

 const people = [ { name: 'Matt', friend: true, awesomeLevel: 10 }, { name: 'Matias', friend: true, awesomeLevel: 10 }, { name: 'Catie', friend: false, awesomeLevel: 3 }, { name: 'Samantha', friend: false, awesomeLevel: 4 }, { name: 'Jonathan', friend: true, awesomeLevel: 8 }, { name: 'Josh', friend: true, awesomeLevel: 7 } ] let totallyAwesome = people.reduce((acc, ele) => acc + ele.awesomeLevel) console.log(totallyAwesome)

所以我正在尝试使用 reduce 来获得 awesomeLevel 的总和

您需要为累加器添加一个初始值。 否则,第一个元素将作为Array#reduce起始值。

 const people = [ { name: 'Matt', friend: true, awesomeLevel: 10 }, { name: 'Matias', friend: true, awesomeLevel: 10 }, { name: 'Catie', friend: false, awesomeLevel: 3 }, { name: 'Samantha', friend: false, awesomeLevel: 4 }, { name: 'Jonathan', friend: true, awesomeLevel: 8 }, { name: 'Josh', friend: true, awesomeLevel: 7 } ]; let totallyAwesome = people.reduce((acc, ele) => acc + ele.awesomeLevel, 0); // ^ console.log(totallyAwesome);

您只忘记了最后作为第二个参数的 reduce 中的起始值0 (就在回调之后)。

 const people = [ { name: 'Matt', friend: true, awesomeLevel: 10 }, { name: 'Matias', friend: true, awesomeLevel: 10 }, { name: 'Catie', friend: false, awesomeLevel: 3 }, { name: 'Samantha', friend: false, awesomeLevel: 4 }, { name: 'Jonathan', friend: true, awesomeLevel: 8 }, { name: 'Josh', friend: true, awesomeLevel: 7 } ] let totallyAwesome = people.reduce((acc, {awesomeLevel}) => acc + awesomeLevel, 0); console.log(totallyAwesome)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM