使用 lodash 对属性子对象求和

Sum properties child objects with lodash

我在我的项目中使用了lodash。我有一个JSON

 { arcade: {
    sam: {
        played: 10,
        wins: 5,
        lose: 5
      },
     adam: {
       played: 10,
       wins: 5,
       lose: 5
     },
  }

  pvp: {
    sam: {
        played: 10,
        wins: 5,
        lose: 5
      },
     adam: {
       played: 10,
       wins: 5,
       lose: 5
     },
  }
}

我想收到 JSON

的结果
{
  arcade: {
    played: 20,
    wins: 10,
    lose: 10
  },
  pvp: {
    played: 20,
    wins: 10,
    lose: 10
  },
}

如何计算js/lodash子对象的值之和? 谢谢

http://jsfiddle.net/efmmh8ok/
我会使用 reduce 函数 (lodash doc)

 _.reduce(ori, function (ori1, data1, c) {
    ori1[c] = _.reduce(data1, function (ori2, data2) {
        _.each(data2, function (value, key) {
            ori2[key] = ori2[key] || 0; // if it undefined yet put number 0 
            ori2[key] += value; // sum with the previous value
        });
        return ori2; // the populated data {played: 20, wins: 10, lose: 10}
    }, ori1[c] || {});
    return ori1; // the populated data {pvp: {played: 20, wins: 10, lose: 10}}
}, {});