基於陣列的 JavaScript 物件過濾


假設我們有一個數組和一個如下所示的物件 -

const arr = ['a', 'd', 'f'];
const obj = {
   "a": 5,
   "b": 8,
   "c": 4,
   "d": 1,
   "e": 9,
   "f": 2,
   "g": 7
};

我們需要編寫一個函式,它接受物件和陣列作為輸入,過濾掉所有不在陣列中的物件屬性。因此,輸出應僅包含 3 個屬性,即:“a”、“d”和“e”。

讓我們編寫此函式的程式碼 -

示例

const arr = ['a', 'd', 'f'];
const obj = {
   "a": 5,
   "b": 8,
   "c": 4,
   "d": 1,
   "e": 9,
   "f": 2,
   "g": 7
};
const filterObject = (obj, arr) => {
   Object.keys(obj).forEach((key) => {
      if(!arr.includes(key)){
         delete obj[key];
      };
   });
};
filterObject(obj, arr);
console.log(obj);

輸出

控制檯中的輸出將為 -

{ a: 5, d: 1, f: 2 }

更新於: 2020 年 8 月 26 日

692 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告