如何对对象中特定键的所有值求和?

9
假设我有一个包含多个对象的数组,例如:
var arr = [{ 'credit': 1, 'trash': null }, { 'credit': 2, 'trash': null}]

我想要从数组arr中获取所有credit值的总和。所以期望的总和值是3。我使用了以下代码: arr.reduce((obj, total) => obj.credit + total) 但是当我运行它时,得到的结果是"1[object Object]",这真的很奇怪。
注:我正在尝试使用ES6实现,而不是ES5。

1
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce - Kevin B
@KevinB 我在代码中使用了 reduce,但结果出错了。详见帖子。 - Phillip YS
对,阅读示例。你在做相反的事情。 - Kevin B
2个回答

43

两个问题:你的totalobj参数位置颠倒了,而且你需要提供一个初始值来初始化total变量(也就是,0部分)

arr.reduce((total, obj) => obj.credit + total,0)
// 3

我喜欢你的解决方案,完全按照我的要求工作。谢谢! - user752746

5
您可以在此处使用.forEach()

var arr = [{ 'credit': 1, 'trash': null }, { 'credit': 2, 'trash': null}];

var total = 0;
arr.forEach(item => {
    total += item.credit;
});
  
console.log(total);


是的,这就是我需要的,非常感谢:D - Vipertecpro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接