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

7.1. Создание массивов

7.1. Создание массивов

Легче всего создать массив с помощью литерала, который представляет собой простой список разделенных запятыми элементов массива в квадратных скобках. Например:

var empty = []; // Пустой массив
var primes = [2, 3, 5, 7, 11]; // Массив с пятью числовыми элементами
var misc = [ 1.1, true, "а", ]; // 3 элемента разных типов + завершающая запятая

Значения в литерале массива не обязательно должны быть константами - это могут быть любые выражения:

var base = 1024;
var table = [base, base+1, base+2, base+3];

Литералы массивов могут содержать литералы объектов или литералы других массивов:

var b = [[1,{х:1, у:2}], [2, {х:3, у:4}]];

Если литерал массива содержит несколько идущих подряд запятых без значений между ними, создается разреженный массив (подробнее об этом рассказывается в разделе 7.3). Элементы, соответствующие таким пропущенным значениям, отсутствуют в массиве, но при обращении к ним возвращается значение undefined:

var count = [1,,3]; // Элементы с индексами 0 и 2. count[1] => undefined
var undefs =[,,]; // Массив без элементов, но с длиной, равной 2

Синтаксис литералов массивов позволяет вставлять необязательную завершающую запятую, т.е. литерал [,,] соответствует массиву с двумя элементами, а не с тремя.

Другой способ создания массива состоит в вызове конструктора Аггау(). Вызвать конструктор можно тремя разными способами:

• Вызвать конструктор без аргументов:

var а = new Array();

В этом случае будет создан пустой массив, эквивалентный литералу [].

• Вызвать конструктор с единственным числовым аргументом, определяющим длину массива:

var а = new Array(10);

В этом случае будет создан пустой массив указанной длины. Такая форма вызова конструктора Array() может использоваться для предварительного распределения памяти под массив, если заранее известно количество его элементов. Обратите внимание, что при этом в массиве не сохраняется никаких значений и даже свойства-индексы массива с именами «0», «1» и т. д. в массиве не определены.

• Явно указать в вызове конструктора значения первых двух или более элементов массива или один нечисловой элемент:

var а = new Array(5, 4, 3, 2, 1, "testing, testing");

В этом случае аргументы конструктора становятся значениями элементов нового массива. Использование литералов массивов практически всегда проще, чем подобное применение конструктора Аггау().

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


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