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

Posted

技术标签:

【中文标题】如何对对象中特定键的所有值求和?【英文标题】:How to sum all of values from specific key in object? 【发布时间】:2018-07-11 01:35:32 【问题描述】:

假设我有一个包含多个对象的数组,例如:

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

我想从 arr 数组中获取所有 credit 值的总和。所以预期总和值为 3。所以我使用了以下代码:

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

但是当我运行它时,我得到了"1[object Object]",这真的很奇怪。

Ps:我正在尝试使用 ES6 而不是 ES5 来实现这一点

【问题讨论】:

developer.mozilla.org/en-US/docs/Web/javascript/Reference/… @KevinB 我在代码中使用了 reduce,结果出现错误。帖子中的详细信息 对,阅读示例。你在做一些倒退的事情。 【参考方案1】:

您可以在这里使用.forEach()

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

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

【讨论】:

【参考方案2】:

两个问题:你的 totalobj 参数是反向的,你需要提供一些东西来初始化 total 变量(这是 ,0 部分)

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

【讨论】:

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

以上是关于如何对对象中特定键的所有值求和?的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象中特定键的值存储到数组中 - Vue

如何从自定义模型对象数组中获取特定键的值

在具有特定键的特定值的数组中查找对象的索引[重复]

如何在将连字符作为值之一的同时对字符串数据类型中的键的列表中的值求和

如何使用 AngularJs 对对象数组中的属性值求和

PHP递归函数对所有孩子的特定值求和