首頁 >web前端 >js教程 >ES6中如何透過Key過濾物件屬性?

ES6中如何透過Key過濾物件屬性?

Linda Hamilton
Linda Hamilton原創
2024-11-09 17:02:02303瀏覽

How to Filter Object Properties by Key in ES6?

ES6 中按鍵過濾物件屬性

在 JavaScript 中,通常需要根據特定條件過濾物件屬性。 ES6 提供了一種乾淨、高效的方法來透過展開運算子來實現此目的。

問題:

給定一個如下對象:

{
  item1: { key: 'sdfd', value: 'sdfd' },
  item2: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
}

目標就是建立一個新對象,只包含特定鍵的屬性,例如:

{
  item1: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
}

解決方案:

ES6允許我們使用組合來過濾物件屬性使用Object.keys() 和Array.filter() 方法,然後使用Array.reduce() 方法來建立新物件。

提供的程式碼示範了這種方法:

const raw = {
  item1: { key: 'sdfd', value: 'sdfd' },
  item2: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
};

const allowed = ['item1', 'item3'];

const filtered = Object.keys(raw)
  .filter(key => allowed.includes(key))
  .reduce((obj, key) => {
    obj[key] = raw[key];
    return obj;
  }, {});

console.log(filtered);

在此程式碼中:

  1. Object.keys(raw) 將物件鍵提取到陣列中。
  2. Array.filter(key => allowed.includes(key))根據允許的值過濾鍵。
  3. Array.reduce((obj, key) => { /* ... */ }, {}) 將篩選後的鍵減少到一個新物件中,複製原始物件的對應屬性值。

以上是ES6中如何透過Key過濾物件屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn