我有2个这样的对象数组:
objects [ { countMedias: 2 },
{ countMedias: 1 },
{ countMedias: 3 },
{ countMedias: 1 },
{ countMedias: 2 } ]
listePlayliste [ { nom_playlist: 'bbbb' },
{ nom_playlist: 'ccc' },
{ nom_playlist: 'aaaa' },
{ nom_playlist: 'xxxx' },
{ nom_playlist: 'resttttttttt' } ]
我想将它们融合在一起以获得这样的内容:
Result [ { nom_playlist: 'bbbb', countMedias: 2 },
{ nom_playlist: 'ccc', countMedias: 1 },
{ nom_playlist: 'aaaa', countMedias: 3 },
{ nom_playlist: 'xxxx', countMedias: 1 },
{ nom_playlist: 'resttttttttt', countMedias: 2 } ]
我尝试了这个,但实际上并不是我想要的:
Array.prototype.push.apply(json,objects);
答案 0 :(得分:2)
也许是这样的:
objects.map((object, index) => Object.assign(object, listePlayliste[index]))
但是不要尝试在较大的数组大小上使用它。没那么快。
答案 1 :(得分:1)
使用map
。遍历数组之一并返回对象,该对象使用索引保存其他数组中的当前obj和对象。
const objects = [{
countMedias: 2
},
{
countMedias: 1
},
{
countMedias: 3
},
{
countMedias: 1
},
{
countMedias: 2
}
];
const listePlayliste = [{
nom_playlist: 'bbbb'
},
{
nom_playlist: 'ccc'
},
{
nom_playlist: 'aaaa'
},
{
nom_playlist: 'xxxx'
},
{
nom_playlist: 'resttttttttt'
}
];
const output = objects.map((obj, i) => ({
...obj,
...listePlayliste[i]
}));
console.log(output);
答案 2 :(得分:0)
类似于objects.map(),for循环也可以使用,但是请注意,Object.assign()将修改原始数组。 PFB代码段:
objects = [ { countMedias: 2 },
{ countMedias: 1 },
{ countMedias: 3 },
{ countMedias: 1 },
{ countMedias: 2 } ];
listePlayliste = [ { nom_playlist: 'bbbb' },
{ nom_playlist: 'ccc' },
{ nom_playlist: 'aaaa' },
{ nom_playlist: 'xxxx' },
{ nom_playlist: 'resttttttttt' } ];
for (let i=0; i<objects.length; i++) {
Object.assign(objects[i], listePlayliste[i]);
}
console.log(objects);
为避免修改原始数组,我们可以使用Spread syntax。 PFB代码段:
objects = [ { countMedias: 2 },
{ countMedias: 1 },
{ countMedias: 3 },
{ countMedias: 1 },
{ countMedias: 2 } ];
listePlayliste = [ { nom_playlist: 'bbbb' },
{ nom_playlist: 'ccc' },
{ nom_playlist: 'aaaa' },
{ nom_playlist: 'xxxx' },
{ nom_playlist: 'resttttttttt' } ];
var result = [];
for (let i=0; i<objects.length; i++) {
result.push({ ...objects[i], ...listePlayliste[i] })
}
console.log(result);
console.log(objects);