Почему фильтр категории не находит товары

Строгое сравнение числа со строкой возвращает false. Нормализуйте тип выбранного ID на границе формы и отдельно обработайте вариант «Все категории».

Короткий ответ

Что ответить на собеседовании

Строгое сравнение числа со строкой возвращает false. Нормализуйте тип выбранного ID на границе формы и отдельно обработайте вариант «Все категории».

Подробный разбор

Ответ с пояснениями

Условие

В товаре categoryId — число 2, а значение select — строка '2'. Фильтр использует product.categoryId === selectedCategory. Почему список пуст и как исправить?

Ответ

Строгое сравнение числа со строкой возвращает false. Нормализуйте тип выбранного ID на границе формы и отдельно обработайте вариант «Все категории».

Например, пустая строка означает отсутствие фильтра, а непустую преобразуйте через Number с проверкой допустимого значения. Не заменяйте === на == ради случайного совпадения типов. Если реальные ID строковые, наоборот, храните обе стороны строками. При загрузке новых данных пересчитывайте результат из актуальных товаров и фильтра.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее