在JavaScript中过滤对象数组

假设我们分别有两个文字和对象数组-

const source = [1, 2, 3 , 4 , 5];
const cities = [{ city: 4 }, { city: 6 }, { city: 8 }];

我们需要编写一个包含这两个数组的JavaScript函数。我们的函数应该创建一个新数组,其中包含对象数组中所有包含这些元素的元素,这些对象的“ city”键值存在于文字数组中。

示例

让我们写代码-

const source = [1, 2, 3 , 4 , 5];
const cities = [{ city: 4 }, { city: 6 }, { city: 8 }];
const filterByLiterals = (objArr, literalArr) => {
   const common = objArr.filter(el => {
      return literalArr.includes(el['city']);
   });
   return common;
};
console.log(filterByLiterals(cities, source));

输出结果

控制台中的输出将是-

[ { city: 4 } ]