大家好我使用javascript
與陣列的工作,我有一組數據做添加數組值這裏反對我重視我的代碼幫助如何解決這個如何在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}]
注意:一個兩米欄的名字是不是靜態
大家好我使用javascript
與陣列的工作,我有一組數據做添加數組值這裏反對我重視我的代碼幫助如何解決這個如何在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}]
注意:一個兩米欄的名字是不是靜態
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];
您可以使用對象作爲結果並迭代對象的鍵並對值進行求和。
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);
找你技術上修改同一個對象在這裏! –
是的,它是'r',它會被修改。 –
我想用{}替換Object.create(null),但那只是我:)很好的答案! –
在IE @NicolòBoschi工作 – jose
我覺得這是最好的答案 –