Строгое сравнение числа со строкой возвращает false. Нормализуйте тип выбранного ID на границе формы и отдельно обработайте вариант «Все категории».
Почему фильтр категории не находит товары
Строгое сравнение числа со строкой возвращает false. Нормализуйте тип выбранного ID на границе формы и отдельно обработайте вариант «Все категории».
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В товаре categoryId — число 2, а значение select — строка '2'. Фильтр использует product.categoryId === selectedCategory. Почему список пуст и как исправить?
Ответ
Строгое сравнение числа со строкой возвращает false. Нормализуйте тип выбранного ID на границе формы и отдельно обработайте вариант «Все категории».
Например, пустая строка означает отсутствие фильтра, а непустую преобразуйте через Number с проверкой допустимого значения. Не заменяйте === на == ради случайного совпадения типов. Если реальные ID строковые, наоборот, храните обе стороны строками. При загрузке новых данных пересчитывайте результат из актуальных товаров и фильтра.