如何在javascript中添加数组对象值

时间:2017-06-09 07:04:12

标签: javascript arrays

大家好我在使用javascript使用数组我有一组数据要做这里添加数组值对象我附上我的代码帮助如何解决这个问题

数据

var data=[{one:1,two:2},{one:1,two:2},{one:1,two:2},{one:1,two:2}]

预期产出

var sumdata=[{one:4,two:8}]

注意:一个两列名称不是静态的

2 个答案:

答案 0 :(得分:1)

您可以使用对象作为结果并迭代对象的键并对值进行求和。

var data = [{ one: 1, two: 2 }, { one: 1, two: 2 }, { one: 1, two: 2 }, { one: 1, two: 2 }],
    result = data.reduce(function (r, o) {    // iterate array
        Object.keys(o).forEach(function (k) { // iterate the keys of the object
            r[k] = (r[k] || 0) + o[k];        // check if a property exists or take zero
        });                                   // and add the actual value
        return r;                             // return the object
    }, Object.create(null));                  // start with an empty object without
                                              // some prototypes 
console.log(result);

答案 1 :(得分:1)

var resObj = {};
for (var i = 0; i < data.length; i++) {
   for (var item in data[i]) {
      if (!resObj.hasOwnProperty(item)) {
         resObj[item] = data[i][item];
      } else {
         resObj[item] += data[i][item];
      }
    }
 }
 var sumdata = [resObj];