Книга: 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].
- 7.1. Создание массивов
- 7.2. Чтение и запись элементов массива
- 7.3. Разреженные массивы
- 7.4. Длина массива
- 7.5. Добавление и удаление элементов массива
- 7.6. Обход элементов массива
- 7.7. Многомерные массивы
- 7.8. Методы класса Array
- 7.9. Методы класса Array, определяемые стандартом ECMAScript 5
- 7.10. Тип Array
- 7.11. Объекты, подобные массивам
- 7.12. Строки как массивы