我有一个这样的对象数组
[ { name: 'name1' },
{ name: 'name2' },
{ name: 'name3' } ]
我想像这样将每个对象推入其中的每个对象:
[ { name: 'name1', item: [{ type: type1 }] },
{ name: 'name2', item: [{ type: type2 }] },
{ name: 'name3', item: [{ type: type3 }] } ]
当我尝试做array.push({item: [{}]})
时,我得到这样的结果:
[ { name: 'name1' },
{ item: [ {} ] },
{ name: 'name2' },
{ item: [ {} ] },
{ name: 'name3' },
{ item: [ {} ] } ]
答案 0 :(得分:1)
const arr1 = [
{ name: 'name1', item: [] },
{ name: 'name2', item: [] },
{ name: 'name3', item: [] }
];
const objects = [
{ itemId: 1 },
{ itemId: 2 },
{ itemId: 3 }
];
for (let i = 0; i < arr1.length; i++) {
const element = arr1[i];
element.item.push(objects[i]);
}
console.log(arr1);
答案 1 :(得分:0)
首先必须将item
初始化为数组:
if (!array[0].item) {
array[0].item = [];
}
然后推送:
array[0].item.push({ type: type1 });
用[0]
代替您需要的索引。我不知道您有什么逻辑。可能以某种形式的循环array[i]
。
答案 2 :(得分:0)
迭代数组并按所需方式修改对象。
myArray.forEach((obj, idx) => {
//You have each object here
obj.item = [{ type: 'type' + idx }]
})
还要查看诸如find
,some
和every
之类的数组函数
答案 3 :(得分:0)
您应该迭代并在JSON对象中添加键值对
array.forEach((element)=>{
element[0]['item'] = [{}] // here you can add your key-value pair
});
答案 4 :(得分:0)
如果您需要一个新的阵列,这也可以工作
let ar=[
{ name: 'name1' },
{ name: 'name2' },
{ name: 'name3' } ];
let modArray = ar.map((x,i)=>{
return {item:[{ type: 'type' + (i+1) }],...x}
});
console.log(modArray);