Используйте lodash для фильтрации массива объектов и проверки наличия значения свойства объекта в другом массиве

#javascript #lodash

Вопрос:

Я пытаюсь выполнить следующую задачу с lodash помощью или чисто JS.

У меня есть массив объектов, которые я фильтрую по заданному значению свойства

 
let res = _.filter(array, {obj.property: "somevalue"}
 

Теперь у меня есть еще один массив, подобный этому [val1, val2,val3] , с которым я хочу сравнить свойства отфильтрованного массива.

 let res = _.filter(array, {obj.property1: "somevalue", obj.property2: existsInOtherArray}
 

Комментарии:

1. Можете ли вы привести пример с вводом и ожидаемым выводом?

Ответ №1:

Вы можете использовать набор и метод фильтрации массива, например:

 const array = [
  {property1: 'somevalue'},
  {property1: 'somevalue', property2: 'val2'}
]

const set = new Set(['val1', 'val2', 'val3'])
const res = array.filter(obj => obj.property1 === 'somevalue'
                                amp;amp; set.has(obj.property2))

console.log(res)