ИНФОРМАЦИЯ,    ДИЗАЙН,    ПЕРЕВОДЫ,    РЕКЛАМА   .   .   .
w a p - с а й т
Информационный портал
Сегодня:  
admin@aranea.ru
+79068922256

  aranea.ru || JavaScript - Введение | Использование массивов

Использование массивов.

Индексирование массивов

Массивы в JavaScript - разреженные. Т.е. если вы имеете массив с тремя элементами, которые пронумерованы 0, 1 и 2, то вы можете создать элемент 50 без беспокойства об элементах от 3 до 49. Если массив имеет автоматическую переменную длину (смотрите "Внутренние объекты" для объяснения автоматического мониторинга длины массива), то переменная длины скорее устанавливается на 51, чем на 4. Вы можете создать массив, который не имеет пропусков в перечислении элементов, но это не обязательно. Фактически в JavaScript ваши массивы не должны вообще иметь пронумерованные индексы.

В JavaScript объекты и массивы практически идентичны друг другу. Реальное различие не в данных, а в способе, которым вы обращаетесь к членам массива или к свойствам и методам объекта.

Обращение к массивам

Существует два главных способа обращения к членам массива. Обычно, вы обращаетесь к массивам, используя квадратные скобки. Квадратные скобки включают либо числовое значение, либо выражение, которое рассчитывается к неотрицательному целому числу. Следующий пример допускает, что переменная entryNum определена и назначена, как значение в программе.

theListing = addressBook[entryNum];
theFirstLine = theListing[1];

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

Второй способ обращения к массиву состоит в создании объекта/массива, который содержит свойства, которые пронумерованы, и затем генерируют числа в цикле. Следующий пример получает два массива, один для имени и один для адресации, из перечисления в addressBook. Каждый из них содержит четыре свойства. Пример theName, который строиться со свойствами theListing от [Name1] до [Name4], может содержать "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];
}

Когда этот частный пример короткий, он может быть легко написан в стиле записи с точкой, (т.е., обращение к theListing, theName и к theAddress, как объектам лучше, чем, как к массивам), что не всегда возможно. Иногда частное свойство может не существовать до времени прогона или может не являться способом для выявления, что будет впереди. Например, если массив addressBook упорядочивался по последнему имени вместо нумерованного списка, то пользователь, возможно, вводил бы имена на лету ("on the fly"), когда запущена программа для поиска людей. Следующий пример допускает существование соответствующих определений функции где-то в программе.

theListing = addressBook[getName()];
theIndivListing = theListing[getFirstName()];

Это – ассоциативное обращение к массиву, т.е. обращение по значению полностью произвольными строками. Объекты в JavaScript фактически ассоциативные массивы. Хотя вы может (и часто делаете) использовать обращение стилем записи с "точкой" ("dot" style), то это в любом случае не обязательно. Так как к членам любого объекта JavaScript можно получить доступ через использование записи массива, объект JavaScript может использоваться как ассоциативный массив.

Следующий код создает и инициализирует самую знакомую форму массива:

var myArray = new Array("Athens", "Belgrade", "Cairo");

К каждому элементу этого массива обращаются с использованием номера этого элемента; в данном случае 0, 1 или 2. Используя оператор for...in, массив может осуществлять итерацию, начиная с 0, и заканчивая 2. Например:

for (key in myArray)
  response.write("Element value is " + MyArray[key] + "<BR>);

Следующий код создает и инициализирует ассоциативный массив, содержащий три элемента:

var MyArray = {"a" : "Athens", "b" : "Belgrade", "c" : "Cairo" };

В этом массиве к элементам обращаются с использованием ключевых строк ("a", "b" или "c") вместо номера элемента массива (0, 1 или 2). Это позволяет вам создавать и использовать массивы с более интуитивной схемой адресации. Тот же код с оператором for...in, показанный выше, тоже может использоваться для итерации этого массива.

← Назад | Вперед →
Copyright © 2006 -  aranea.ru