簡體   English   中英

Javascript-如何從嵌套對象中刪除項目?

[英]Javascript -How remove item from nested object?

我正在嘗試從嵌套對象中刪除一項。 名為“類別”的對象,其中包含多個類別,每個類別都有多個業務。 像下面的波紋管對象:

let categories = [{
  name: 'Home',
  biz: [{
    name: 'Business 1',
    id: 50
  }, {
    name: 'Business 2',
    id: 52
  }, {
    name: 'Business n',
    id: 53
  }]
}, {
  name: 'Car',
  biz: [{
    name: 'Business 1',
    id: 62
  }, {
    name: 'Business 2',
    id: 66
  }, {
    name: 'Business n',
    id: 67
  }]
}];

我要做的是刪除用戶選擇的其中一項業務,並返回整個對象而不更改原始狀態。

到目前為止,我做了類似波紋管的操作,但它工作正常,我不確定我是用正確的方法還是錯誤的方法進行操作。 如果您能通過查看或重構此代碼來幫助我,我將不勝感激:

categories.map((cat, inedx) => {
  return { ...cat, biz: [...cat.biz.filter(bz => bz.id!== 66)]}
});

減少救援:-)

const fn = (categories, id) => {
  return categories.reduce((r, x) => {
    return r.concat({ ...x, biz: x.biz.filter(x => x.id !== id) });
  }, []);
}

console.log(fn(categories, 66));

  let categories = [{ name: 'Home', biz: [{ name: 'Business 1', id: 50 }, { name: 'Business 2', id: 52 }, { name: 'Business n', id: 53 }] }, { name: 'Car', biz: [{ name: 'Business 1', id: 62 }, { name: 'Business 2', id: 66 }, { name: 'Business n', id: 67 }] }]; categories.forEach(el => el.biz = el.biz.filter(e => e.id !== 66)); console.log("removed biz 66", categories) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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