JSCRIPT MANUAL

Microsoft® JScript™
Использование массивов
 Описание JScript
Пред.
След.


Индексация массивов
Массивы в JScript разряжены. Так, если в массиве три значения пронумерованы как 0, 1 и 2, вы можете создать элемент 50, не волнуясь об элементах от 3 до 49. Если массив имеет автоматическую переменную размера (смотрите встроенные объекты (Intrinsic Objects) для определения размера массива), переменная размера установлена как 51, несмотря на размер 4. Конечно, можно создавать массивы без разрывов в нумерации элементов, но это не обязательное условие. Фактически в JScript, массивы вообще могут не иметь нумерации.

В JScript объекты и массивы идентичны друг другу. Настоящая разница не в данных, а скорее в адресации элементов массива или свойств (properties) и методов объекта.

Адресация массивов
Существует два основных способа для адресации элементов массива. Обычно, для адресации используют индексы. Индексы содержат числовое значение или выражение (expression), которое оценивается как неотрицательное целое. В следующем примере предполагается, что переменная entryNum определена, и ей присвоено значение в другом месте в сценарие.
theListing = addressBook[entryNum];
theFirstLine = theListing[1];
Метод адресации эквивалентен методу адресации объектов, хотя при адресации объекта, индекс должен быть именем существующего свойства. Если такого свойства нет, возникает ошибка при исполнении кода.

Второй способ адресации массива состоит в том, чтобы создать объект (массив), который содержит свойства, которые пронумерованы числами в цикле. В следующем примере создается два массива, один для имени, второй для адреса, внесенных в список addressBook. Каждый из них содержит четыре свойства. Образец theName, например, формируется от [Name1] до [Name4] свойств theListing, может содержать "G." "Edward" "Heatherington" "IV" или "George" "" "Sand" "".

theListing = addressBook[entryNum];
for (i = 1; i < 4; i++)  {
theName[i] = theListing["Name" + i];
theAddress[i] = theListing["Address" + i];
}
В то же время код мог бы легко быть написан в "dot"-стиле системы обозначений (то есть адресуя theListing, theName и theAddress скорее как объекты, чем матрицы, через точку), но подобное не всегда возможно. Иногда какое-либо свойство не может существовать до времени выполнения, или нельзя его узнать заранее. Например, если массив addressBook упорядочен по фамилии вместо нумерации, пользователь будет вероятно вводить названия " на лету", в то время как сценарий функционирует, просматривая людей. Следующий пример показывает применение определений функций в другом месте сценария.
theListing = addressBook[getName()];
theIndivListing = theListing[getFirstName()];
Это ассоциативная адресация массива, то есть адресация посредством полностью произвольных строк. Объекты в JScript являются ассоциативными массивами. Хотя чаще всего используется "dot"-стиль, это не всегда требуется.


Перевод © 2000-2013 pauk R-T-F-M.info. Все права защищены.