Задать вопрос

Объясните как понять данное выражение в JS?

Я изучаю js и сейчас написал вот такой скрипт где убираю дубли из массива:
const getLengthArray = (str) => {
  //преобразуем строку в массив элементов при помощи метода split()
  const elems = str.split('');
  //создадим пустой массив куда будем складывать элементы которые не дублируются
  const newArray = [];
  for(let el of elems) {
    if(!newArray.includes(el)) {
      newArray.push(el);
    }
  }
  return newArray.length;
};

console.log(getLengthArray('Hello'));

но я не могу понять как работает данное выражение:
if(!newArray.includes(el)) {
      newArray.push(el);
    }

Если я убираю восклицательный знак, то выводит все по нулям, если добавляю то все работает хорошо.
Я понимаю это условие так: если в массиве newArray не включен элемент el, то добавляем в новый массив, но так как элемент L в слове hello уже был включен, то он вторую L игнорирует.
Кто разбирается в кишках js подскажите как работает данное выражение, правильно ли я мыслю.
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
newArray.includes(el)

Это метод массива, он возвращает true если массив содержит элемент и false - есть нет

!

оператор отрицания, преобразует стоящее за ним значение:
1) в Boolean (true или false). Пустая строка - это false, 0 - false, 1 - true и т.д. Тут отдельная большая тема.
2) "Переворачивает" значение - true станет false и наоборот.

Читайте документацию, это же самые основы языка
https://developer.mozilla.org/ru/docs/Web/JavaScri...
https://developer.mozilla.org/en-US/docs/Web/JavaS...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы