大家好我在使用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}]
注意:一个两列名称不是静态的
答案 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];