我在下面有这些数据集,我想合并每组中的数据:
var data = {};
var datasets = [
{"_id":"58d6c806d7c80d5d44a35204","particles":{"timestamp":[1490470918708,1490470962915,1490470967186],"Particles":["108","108","109"]}},
{"_id":"58d6caf62552b75f26f56f91","particles":{"timestamp":[1490471670888,1490473309103],"Particles":["109","100"]}}
];
datasets.forEach(function(dataset, index) {
for (var key in dataset.particles) {
data[key] = dataset.particles[key];
}
});
console.log(data);
结果:
{ timestamp: [ 1490471670888, 1490473309103 ],
Particles: [ '109', '100' ] }
他们没有加入。我追求的结果是:
{ timestamp: [ 1490470918708,1490470962915,1490470967186, 1490471670888, 1490473309103 ],
Particles: [ '108','108','109', '109', '100' ] }
有任何想法吗?
编辑
当处理非常大的数据时,
concat
或push
更快吗? 最佳答案
您必须连接数组,而不仅仅是分配值。
var data = {};
var datasets = [
{"_id":"58d6c806d7c80d5d44a35204","particles":{"timestamp":[1490470918708,1490470962915,1490470967186],"Particles":["108","108","109"]}},
{"_id":"58d6caf62552b75f26f56f91","particles":{"timestamp":[1490471670888,1490473309103],"Particles":["109","100"]}}
];
datasets.forEach(function(dataset, index) {
for (var key in dataset.particles) {
// Check if key already exists.
if( data[key] === undefined )
data[key] = [];
// Add current timestamps.
data[key] = data[key].concat(dataset.particles[key]);
}
});
console.log(data);