基于数组的 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 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告