我正在迭代一堆看起来像这样的对象:
var tests = [{ date: 1379082017487,
summary:
{'Item A': 2069,
'Item B': 8987,
'Item C': 1890
}},
{date: 1379082015968,
summary:
{'Item A': 1824,
'Item B': 6758,
'Item C': 3857
}}];
我需要将数据组合成具有相同键的单个对象,以及包含组合值的数组:
{ date: [1379082017487, 1379082015968],
summary:
{ 'Item A': [2069, 1824],
'Item B': [8987, 6758],
'Item C': [1890, 3857]
}
}
到目前为止,我的策略是创建一个嵌套循环;遍历顶级对象并将它们的值添加到“日期”数组中。然后遍历“summary”对象,将这些值推送到代表每个键的数组中。最后,我会将数组重新添加在一起以形成我的单个输出对象。
我的大脑冻结在内部阵列上。它可以有不同数量的键(“项目”)。虽然在任何给定的代码运行中,这些键对于所有对象都具有相同的名称,但它们在运行之间可以具有不同的名称。内部循环不产生数组(如 [2069, 1824])。
到目前为止,我有:
var testDates = [];
var itemVals = [];
// iterate over the outer objects
for (var record = 0; record < tests.length; record++) {
testDates.push(tests[record].date); // this works fine
// iterate over the inner 'summary' object:
for (var itemName in tests[record]['summary']) {
// doesn't produce the appropriate array
itemVals.push([tests[record]['summary'][itemName]]);
}
}
感谢您的任何建议!