[英]How to delete and add item in nested array object
我有嵌套的數組對象,其中包含項目。 我想從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 } ],
},
]
我將分兩步完成,首先獲取 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);
}
}
});
也許是這樣的?
let v = data[3].items.pop()
data[4].items.push(v)
這個問題不是最清楚的。 如果您需要根據某些條件或邏輯執行此操作,則必須自己執行此操作。
如果您需要從 id=4 復制所有項目,請使用以下代碼: data[4].items.push(data[3].items.splice(1,data[3].items.length));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.