Как правильно сравнить строки в JS?

Добрый день, подскажите, почему так происходит?
Я сравниваю строку с некоторыми константами, и всегда выходит true не зависимо равна ли строка какой либо константе или нет
914f1745b1984a5fa0f93bcde30a3971.png

При разной длине строк аналогично

8d283822560848309b60ba4652376674.png
  • Вопрос задан
  • 924 просмотра
Решения вопроса 2
У вас не идёт постоянное сравнение с value.
if (value === 'DeadSingle' || value === 'HingedSingle' || value === 'TATSingle') {
 // do stuff
}
Иначе, у вас шла проверка таким образом:
value == 'DeadSingle' // false
'HingedSingle' // true (ведь это не пустая строка)


Если много проверок, можно делать так, например:
if (['DeadSingle', 'HingedSingle', 'TATSingle'].indexOf(value) !== -1) {
 // do stuff
}
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Я сравниваю строку с некоторыми константами


Нет, вы сравниваете строку с одной константой, после чего просто прокиыдываете остальные константы как отдельные условия которые всегда истенны. А так как у нас там идет дизъюнкция то результат всегда будет истенным.

-1 !== ['foo', 'bar', 'buz'].indexOf(str);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы