Какой смысл устанавливать индексы равными друг другу?
Я полагаю, вы ссылаетесь на эту строку:
if(arr.indexOf(item) === index)
===
оператор на самом деле является оператором строгое равенство . На самом деле он разрешается до логического значения ... true
или false
.
Откройте консоль JavaScript и введите следующее:
1 === 1
Вы вернетесь true
. Аналогичным образом, если вы введете 1 === 2
, вы получите false
.
Теперь, к фактическому коду, есть функция indexOf
. Возвращает индекс элемента в массиве или -1
, если он не найден. Таким образом, для каждого элемента в массиве они проверяют, равен ли первый индекс этого конкретного элемента index этого конкретного элемента. Идея состоит в том, что к тому времени, когда l oop достигнет второго 1
в этом примере массива, indexOf
фактически возвратит 0
, потому что первый индекс, который соответствует значению 1
, равен 0
.