Всегда выводит ветвь true

201
18 мая 2018, 06:40

Разметка html.

<div id="type" class="">Красный клен</div>

Есть массив исключений и проверяемое поле.

var exceptions = ["красный", "синий", "белый"];
var type = [document.getElementById(`type`).innerHTML];

Если в type присутствует любой из элементов массива exceptions, то if не должен срабатывать. Он у меня всегда выводит что 'не содержит'. Почему так?

    market_exceptions.some(q => {
        if (!type[0].startsWith(q)) {
            c('не содержит');
        }
    });
Answer 1

Так как метод startsWith регистрозависимый, он считает строки с разным регистром разными, например: красный - Красный

Чтобы исправить это необходимо привести строки к одному регистру, либо хранить все допустимые варианты строк.

Привести к одному регистру можно с помощью функций toUpperCase и toLowerCase

Код станет выглядеть так:

var currentType = type[0].toLowerCase(); // так как в market_exceptions элементы уже в нижнем регистре достаточно привести только проверяемую строку
market_exceptions.some(q => {
    if (!currentType.startsWith(q)) {
        c('не содержит');
    }
});
READ ALSO
Скрыть/Показать DIV по выбору RADIO

Скрыть/Показать DIV по выбору RADIO

Есть вот такая форма, при выборе к примеру "футболки" должен открыться "блок с футболками", а если выбрать "шорты", то "блок с футболками" должен...

218
Не скролится страница после нажатия на лого [требует правки]

Не скролится страница после нажатия на лого [требует правки]

Не скролится страница после нажатия на логоПриходится 10 раз провернуть колесико чтоб начался скрол

197
Column count doesn&#39;t match value count at row 1 Ошибка Mysql

Column count doesn't match value count at row 1 Ошибка Mysql

Подскажите что не так, пожалуйста

206
Перенос файла в окно программы

Перенос файла в окно программы

Есть программа, где по нажатию на кнопку можно загрузить файлКак сделать так, чтобы можно было файл просто перетащить на окно и он загрузился?

211