代码之家  ›  专栏  ›  技术社区  ›  Phillip YS

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

  •  5
  • Phillip YS  · 技术社区  · 7 年前

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

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

    我想得到所有的总数 credit 值来自 arr 大堆所以期望的和值是3。所以我使用了以下代码:

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

    但当我运行这个时 "1[object Object]" 这真的很奇怪。

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

    2 回复  |  直到 7 年前
        1
  •  30
  •   nvioli    7 年前

    两个问题:您的 total obj 参数是向后的,您需要提供一些东西来初始化 全部的 变量(即 ,0 零件)

    arr.reduce((total, obj) => obj.credit + total,0)
    // 3
    
        2
  •  5
  •   dferenc ari    7 年前

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

    var arr = [{ 'credit': 1, 'trash': null }, { 'credit': 2, 'trash': null}];
    
    var total = 0;
    arr.forEach(item => {
        total += item.credit;
    });
      
    console.log(total);