• Какие есть способы сократить данную строку?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    if( !/search|search_input|cancel_btn/i.test(target.className) ) cancelSearch();

    UPD:
    OR
    !/search|search_input|cancel_btn/i.test(target.className) && cancelSearch();
    Ответ написан
    Комментировать
  • Какие есть способы сократить данную строку?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    Если вот на 100% уверен, что className состоит из одного слова.
    if(!['search', 'search_input', 'cancel_btn'].includes(target.className)) {
      cancelSearch();
    }


    UPD:
    И bulletproof реализация если несколько классов на элементе

    const allowedClasses = ['search', 'search_input', 'cancel_btn'];
    
    if(![...target.classList].some(name => allowedClasses.includes(name))) {
      cancelSearch();
    }
    Ответ написан
    Комментировать
  • Какие есть способы сократить данную строку?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Сложить допустимые значения в массив, с помощью метода узнать, содержится ли в массиве проверяемое значение:

    if (![ 'search', 'search_input', 'cancel_btn' ].includes(target.className)) {

    Или, заменить длинное обращение к проверяемому значению коротким через создание дополнительной переменной:

    const t = target.className;
    if (t != 'search' && t != 'search_input' && t != 'cancel_btn') {
    Ответ написан
    Комментировать