03. Array Holes
Элемент со значением undefined
и отсутствующий элемент -- это разные вещи, хотя и очень похожие. При попытке обратиться по индексу к дыре, будет получено значение undefined
. Ключа для таких элементов в массиве не существует. Определить есть ли дыра можно проверив наличие индекса в массиве а не элемента по индексу при помощи оператора in
:
В ES6 (в функциях и в итераторе) дыры в массивах трактуются как неопределенные элементы со значением undefined
.
Некоторые операции "видят" дыры в массиве, а некоторые игнорируют их:
forEach
- игнорируетevery
- игнорируетmap
- игнорирует при вызове функции, но сохраняет в массивеfilter
- удаляет из массиваjoin
- преобразует дыры в значениеundefined
sort
- сохраняетfor..in
- игнорирует (показывает только реальные индексы)
Last updated
Was this helpful?