簡體   English   中英

如何在嵌套數組對象中刪除和添加項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM