Объект Array языка JScript
Объект Array представляет собой переменную, в которой сгруппированы связанные фрагменты данных. К каждому фрагменту данных в массиве обращаются с помощью уникального номера, называемого индексом. Для получения доступа к данным, сохраненным в массиве, идентификатор массива и индекс объединяются с помощью оператора индекса "[]", например theMonths[0].
Создание массива
Для создания нового массива используется оператор new и конструктор Array. В данном примере создается массив длиной 12 с помощью конструктор массива. Затем в массив вводятся данные.
var theMonths = new Array(12);
theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[3] = "Apr";
theMonths[4] = "May";
theMonths[5] = "Jun";
theMonths[6] = "Jul";
theMonths[7] = "Aug";
theMonths[8] = "Sep";
theMonths[9] = "Oct";
theMonths[10] = "Nov";
theMonths[11] = "Dec";
При создании массива с помощью ключевого слова Array, JScript добавляет к нему свойство length, в котором записывается число элементов. Если не указать значение этого свойства, длина считается равной нулю и массив не содержит элементов. Если значение указывается, то для длины устанавливается это значение. Если указывается несколько параметров, то параметры используются в качестве элементов массива. Кроме того, количество параметров присваивается свойству "length", как в следующем примере, который эквивалентен коду, показанному выше.
var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
Другим способом ввода данных в массив является использование литералов массива. Дополнительные сведения см. в разделе Данные массивов.
В объекте Array хранятся разреженные массивы. Это означает, что если массив содержит три элемента с номерами 0, 1 и 2, то для существования элемента с номером 50 не требуются элементы с 3 по 49. При добавлении элементов в объект Array JScript автоматически изменяет значение свойства length. Индексы массивов JScript всегда начинаются с 0, а не с 1, поэтому значение свойства "length" всегда на единицу превышает наибольший индекс массива.
Использование свойств "expando" массивов
Объекты массивов, подобно всем другим объектам, основанным на объекте Object языка JScript, поддерживают свойства "expando". Свойства "expando" являются новыми свойствами, которые можно динамически добавлять и удалять в массиве точно так же, как индексы. В отличие от индексов массива, которые должны быть целыми числами, свойства "expando" являются строками. Кроме того, добавление и удаление свойств "expando" не влияет на значение свойства length.
Пример.
// Initialize an array with three elements.
var myArray = new Array("Hello", 42, new Date(2000,1,1));
print(myArray.length); // Prints 3.
// Add some expando properties. They will not change the length.
myArray.expando = "JScript";
myArray["another Expando"] = "Windows";
print(myArray.length); // Still prints 3.
Типизированные массивы
Другой быстрый способ создания массива theMonths, показанного выше, состоит в создании типизированного (собственного) массива, в данном случае массива строк.
var theMonths : String[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
Доступ к элементам типизированных массивов можно получить быстрее, чем к элементам объекта "array" языка JScript. Типизированные массивы совместимы с массивами языков, не поддерживаемых платформой .NET Framework, а также помогают обеспечить безопасность типов.
Объекты Array языка JScript отличаются исключительной гибкостью, и их очень удобно использовать для списков, очередей, стеков и т. п., однако собственные массивы бывают крайне полезны для хранения элементов фиксированного размера одного типа. Как правило, следует всегда использовать типизированные массивы за исключением случаев, когда требуются особые возможности объекта Array (динамическое изменение размера и т. п.).
Для типизированных массивов можно вызывать все неразрушающие методы Array языка JScript (методы, которые не изменяют длину).