Как проверить наличие элементов одного массива в другом?

У меня есть 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);

Извиняюсь, за возможно путанное объяснение, но я начинающий. Заранее спасибо!


Ответы (0 шт):