У меня есть два объекта / массива, которые мне нужно сравнить для системы фильтров, вот грубый набор данных:
var books = [{
'title': 'book a',
'relatedIds': [1, 2],
'authorId': 1,
},{
'title': 'book b',
'relatedIds': [1, 2, 3, 4],
'authorId': 2,
},{
'title': 'book a',
'relatedIds': [1],
'authorId': 3,
}];
var filters = {
'relatedIds' : [1, 2, 3],
'author': [1, 2]
};
Что я ожидаю увидеть для приведенных выше фильтров, которые book a
(имеетсвязанные идентификаторы 1 и 2 и идентификатор автора 1 из фильтра) и book b
(имеет связанные идентификаторы 1, 2 и 3 и идентификатор автора 2 из фильтра).
Я бы не ожидал увидеть book c
дажехотя он имеет правильный связанный идентификатор, его автор - 3, которого нет в фильтре.
Я пытался использовать метод фильтра lodash:
_.filter(books, (book) => {
....
Но я не вижукак я могу сделать сравнение на основе массивов из фильтра или массива или int / string в книгах.