我有嵌套的数组对象,其中包含项。我想从第一项id:4
中删除该项,然后添加id:5
对象。
const data = [
{
id: 1,
items: [ { id:11 }, {id:12 } ],
},
{
id: 2,
items: [ { id:21 } ],
},
{
id: 3,
items: [ { id:31 } ],
},
{
id: 4,
items: [ { id:41 }, {id:42 } ],
},
{
id: 5,
items: [ { id:51 } ],
},
]
所以我得到的数组应该是这样的
const data = [
{
id: 1,
items: [ { id:11 }, {id:12 } ],
},
{
id: 2,
items: [ { id:21 } ],
},
{
id: 3,
items: [ { id:31 } ],
},
{
id: 4,
items: [ { id:41 } ],
},
{
id: 5,
items: [ {id:42 }, { id:51 } ],
},
]
答案 0 :(得分:1)
我将分两个步骤进行操作,首先获取ID为4的项目中除第一个项目外的所有项目:
let moreItems = [];
data.forEach((item) => {
if (item.id === 4) {
while(item.items.length > 1) {
moreItems.push(item.items[item.items.length-1]);
item.items.pop();
}
}
});
moreItems将是要添加到ID为5的项中的项的数组。
data.forEach((item) => {
if (item.id === 5) {
if (moreItems.length > 0) {
item.items = item.items.concat(moreItems);
}
}
});
答案 1 :(得分:0)
也许是这样吗?
let v = data[3].items.pop()
data[4].items.push(v)
问题不是最清楚的。如果您需要根据某些条件或逻辑来执行此操作,则必须自己执行操作。
答案 2 :(得分:-1)
如果您需要从id = 4复制所有项目,请使用以下代码:
data[4].items.push(data[3].items.splice(1,data[3].items.length));