我有一个从 Web 服务返回的 JSON 对象,它是一个对象数组。我需要将“数据”数组添加在一起以形成求和数组。 JSON 响应如下所示:
[
{
"data":[
0,3,8,2,5
],
"someKey":"someValue"
},
{
"data":[
3,13,1,0,5
],
"someKey":"someOtherValue"
}
]
数组中可能有 N 个对象。上述示例所需的输出为:
[3, 16, 9, 2, 10]
我打算创建一个空数组变量(var arr),然后循环遍历对象,对于每个对象,循环遍历“data”键,并为每个键将 arr 中相应的键增加值。
是否有更有效的方法使用某种合并函数来执行此操作?
最佳答案
这个怎么样,我相信它应该适用于所有情况。
var data = [{
"data": [
0, 3, 8, 2, 5
],
"someKey": "someValue"
}, {
"data": [
3, 13, 1, 0, 5
],
"someKey": "someOtherValue"
}];
var datas = data.reduce(function(a, b) {
b.data.forEach(function(x, i) {
a[i] = a[i] || 0;
a[i] += x;
});
return a;
}, []);
console.log(datas);
关于Javascript:按键求和多个数组的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287889/