Книга: JavaScript. Подробное руководство, 6-е издание

7.3. Разреженные массивы

7.3. Разреженные массивы

Разреженным называется массив, индексы элементов которого не образуют непрерывную последовательность чисел, начиная с 0. Обычно свойство length массива определяет количество элементов в массиве. В разреженном массиве значение свойства length больше количества элементов. Разреженный массив можно создать с помощью конструктора Аггау() или путем присваивания значения элементу с индексом, большим, чем текущая длина массива.

а = new Array(5); // Нет элементов, но a.length имеет значение 5.
а = []; // Создаст пустой массив со значением length = 0.
а[1000] = 0; // Добавит один элемент, но установит длину равной 1001.

Далее будет показано, что разреженный массив можно также создать с помощью оператора delete.

Существенно разреженные массивы обычно более медленны и потребляют больше памяти, чем плотные массивы, а поиск элементов в таких массивах занимает примерно столько же времени, что и поиск обычных свойств объектов.

Обратите внимание, что литералы с пропущенными значениями (когда в определении подряд следуют запятые, например [1, ,3]) создают разреженные массивы, в которых пропущенные элементы просто не существуют:

var a1 = [,]; // Массив без элементов с длиной, равной 1
var а2 = [undefined]; // Массив с одним неопределенным элементом
О in а1 // => false: а1 не имеет элемента с индексом О
О in а2 // => true: а2 имеет элемент с индексом 0 и со значением undefined

Некоторые старые реализации (такие как Firefox 3) некорректно вставляли элементы со значением undefined на место пропущенных элементов. В этих реализациях литерал [1,,3] был эквивалентен литералу [1, undefined,3].

Оглавление книги


Генерация: 1.147. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз