减少数组js中的条件

我在过滤和减少方面遇到了问题。只有当“A”等于 2020 时,我才需要获得“smc”的总和。这是我的数组:

arr = [{A:2020, smc:1},{A:2020, smc:2}, {A:2021, smc:3}]

我试过类似的东西:

arr.filter(e=> e.A===2020).reduce((sum, iter) => sum + iter.smc)

但它似乎不起作用。任何想法为什么?谢谢


慕田峪7331174
浏览 79回答 1
1回答

慕丝7291255

您需要传递第二个参数作为0的reduce()初始值sum。arr.filter(e=> e.A===2020).reduce((sum, iter) => sum + iter.smc, 0)您还可以删除仅与三元运算符一起filter()使用reduce()const arr = [{A:2020, smc:1},{A:2020, smc:2}, {A:2021, smc:3}];let res = arr.reduce((ac, {smc, A}) => ac + (A === 2020 ? smc : 0), 0);console.log(res)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript