Roy*_*uro 2 javascript arrays object
我有一个对象数组,如下所示:
[
{
key1: val_1.a
key2: val_2.a
key3: val_3.a
},{
key1: val_1.b
key2: val_2.b
key3: val_3.b
},{
key1: val_1.c
key2: val_2.c
key3: val_3.c
}
]
Run Code Online (Sandbox Code Playgroud)
我想使用该对象创建另一个看起来像这样的对象:
{
key1: [val_1.a, val_1.b, val_1.c]
key2: [val_2.a, val_2.b, val_2.c]
key3: [[val_3.a, val_3.b, val_3.c]
}
Run Code Online (Sandbox Code Playgroud)
由于每个对象中的键都相同,我只想在数组中保存与每个键对应的所有值.
请,如果有人之前必须这样做并且可以共享代码,那就太好了.提前致谢.
你可以这样做,这种方式可以在所有浏览器中使用,如果所有对象都没有完全相同的键组,它甚至可以工作(例如,它只会累积任何键存在的数据):
function combineKeyData(data) {
var output = {}, item;
// iterate the outer array to look at each item in that array
for (var i = 0; i < data.length; i++) {
item = data[i];
// iterate each key on the object
for (var prop in item) {
if (item.hasOwnProperty(prop)) {
// if this keys doesn't exist in the output object, add it
if (!(prop in output)) {
output[prop] = [];
}
// add data onto the end of the key's array
output[prop].push(item[prop]);
}
}
}
return output;
}
Run Code Online (Sandbox Code Playgroud)
工作jsFiddle:http://jsfiddle.net/jfriend00/0jjquju9/
说明: