簡體   English   中英

從 Object 數組中刪除多個鍵

[英]Delete multiple keys from array of Object

假設我們有一個 object 數組:

var obj = [{a: 1, b: 2, c: 3, d: 4, e: 5 },{a: 6, b: 7, c: 
8, d: 9, e: 0 }];

我們想從兩個對象中刪除鍵 c,e 。

怎么做到呢? 我發現的一種方法是:

['c', 'e'].forEach(e => delete obj[e]); //for object

有沒有其他方法,所以我們不必使用雙循環。

一種方法是將.map()object 解構一起使用:

 var obj = [ { a: 1, b: 2, c: 3, d: 4, e: 5 }, { a: 6, b: 7, c: 8, d: 9, e: 0 }, ]; var newObj = obj.map(({ c, e, ...rest }) => rest); console.log(newObj)

這將創建一個包含新對象的新數組,其中包含除ce之外的所有其他鍵。

您有 2 個選項來解決它:

  1. 通過使用object 解構map(({ a,b,c,d,e }) => ({a,b,d})
  2. 使用 [Rest parameters] { c, e, ...rest }增強選項 1
  • Object destructuring如下

    const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 } var {c, e} = obj; // c = 3, e = 5

  • 使用選項 2,您將擁有c,e隱式名稱和名為rest the remaining items 之后,您只需要獲得rest項目。

選項1

 var obj = [ { a: 1, b: 2, c: 3, d: 4, e: 5 }, { a: 6, b: 7, c: 8, d: 9, e: 0 }, ]; console.log(obj.map(({ a,b,c,d,e }) => ({a,b,d})));

選項 2

 var obj = [ { a: 1, b: 2, c: 3, d: 4, e: 5 }, { a: 6, b: 7, c: 8, d: 9, e: 0 }, ]; console.log(obj.map(({ c, e, ...rest }) => rest)); //...rest: the same as `a,b,d`

暫無
暫無

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

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