Проверка, содержится ли один массив в другом внутри объекта - PullRequest
1 голос
/ 09 октября 2019

Я изо всех сил пытаюсь заставить работать (хотя я бы и прост) фильтр.

У меня есть массив объектов:

data: 
  {
    0: {key: 'abc', name: ['bob', 'john', 'steve']},
    1: {key: 'def', name: ['bob']}
   }

Япри попытке массива отфильтровать массив объектов:

filter: ['bob', 'john']

с помощью:

data.filter(v => v.name.includes(filter))

в вышеприведенном примере, я ожидаю, что будут возвращены данные [0], и если я изменюфильтр на filter: ['bob'], тогда будут возвращены данные [0,1].

К сожалению, ничего не возвращается - и я не могу понять это - это, вероятно, просто, но любое понимание будетоценили!

1 Ответ

2 голосов
/ 09 октября 2019

Принимая массив как данные, вы можете фильтровать, получая массив name и проверяя каждый элемент фильтра по этому массиву.

var data = [{ key: 'abc', name: ['bob', 'john', 'steve'] }, { key: 'def', name: ['bob'] }],
    filter = ['bob', 'john'],
    result = data.filter(({ name }) => filter.every(f => name.includes(f)));

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...