Я изучаю 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 подскажите как работает данное выражение, правильно ли я мыслю.