Как проверить наличие элементов одного массива в другом?
У меня есть state, хранящий состояние фильтров-чекбоксов
const [filtersTypeCar, setFiltersTypeCar] = useState([
{ id: 1, checked: false, label: 'Общий' },
{ id: 2, checked: false, label: 'Сидячий' },
{ id: 3, checked: false, label: 'Плацкартный' },
{ id: 4, checked: false, label: 'Купе' },
{ id: 5, checked: false, label: 'Мягкий' },
{ id: 6, checked: false, label: 'СВ' },
]);
вот часть кода из функции фильтрации, где я на примере др. блоков с чекбоксами получаю те label для поиска, которые отмечены ... в первом случае всё легко, т.к. поезд может относиться только к одному типу линий и в проверяемом свойстве item.lines есть только одно значение, а какое условие нужно написать во втором случае, чтобы проверить есть ли в приходящем свойстве типа "typeCar": ["Общий", "Плацкартный", "Купе"] хотя бы одно соответствие с массивом typeCarChecked, где после фильтрации и map может быть массив из нескольких чекнутых лейблов
....
// type train filter
const typeTrainChecked = filtersTypeTrain
.filter((item) => item.checked)
.map((item) => item.label);
if (typeTrainChecked.length) {
updatedList = updatedList.filter((item) =>
typeTrainChecked.includes(item.lines)
);
}
const typeCarChecked = filtersTypeCar
.filter((item) => item.checked)
.map((item) => item.label);
if (typeCarChecked.length) {
updatedList = updatedList.filter((item) =>
????
);
}
setTrains(updatedList);
Извиняюсь, за возможно путанное объяснение, но я начинающий. Заранее спасибо!