根据数组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 }