Руководство по actionscript. часть 2, стр. 024
Обратите внимание, что обращение к элементу массива очень похоже на обращение к значению переменной. Элементы массива могут являться частью любых составных выражений, как показано в следующем примере:
var ages:Array = [12, 4. 90]:
var totalAge:Number = ages[0] + ages[l] + ages[2]; // Сумма значений
// элементов массива
Суммирование значений элементов массива вручную никак нельзя назвать образцом оптимизированного кода. Позднее мы познакомимся с более удобным способом последовательного обращения к элементам массива.
Присваивание значения элементу массива
Чтобы присвоить значение элементу массива, мы используем выражение массив [ но-мерЭлемента ] в качестве левого операнда выражения присваивания. Это демонстрирует следующий код:
// Создание массива
var cities:Array = ["Toronto". "Montreal". "Vancouver". "Waterloo"]:
// массив cities в настоящий момент выглядит так: // ["Toronto". "Montreal". "Vancouver". "Waterloo"]
// Присваиваем значение первому элементу массива
citiesCO] = «London»:
// Массив cities теперь выглядит так:
// ["London". "Montreal". "Vancouver". "Waterloo"]
// Присваиваем значение четвертому элементу массива
cities[3] = «Hamburg»:
// Теперь массив cities выглядит так:
// ["London". "Montreal". "Vancouver". "Hamburg"]
// Присваиваем значение третьему элементу массива cities[2] = 293.3: // Обратите внимание, что изменение типа данных // значения элемента не вызывает никаких проблем // Массив cities теперь выглядит так: // ["London". "Montreal". 293.3. "Hamburg"]
Стоит отметить, что при присваивании значения элементу массива в качестве индекса мы можем использовать любое неотрицательное числовое выражение:
var i :int = 1:
// Присваиваем значение элементу с индексом i cities[i] = «Tokyo»;
// Массив cities теперь выглядит так: ["London". "Tokyo". 293.3. "Hamburg"]
Определение размера массива
У всех массивов есть переменная экземпляра length, обозначающая текущее значение элементов в массиве (включая незаполненные элементы). Для обращения к переменной массива length используется оператор «точка» (.), как показано в следующем коде:
массив.1ength
Рассмотрим несколько примеров:
var 1ist:Array = [34. 45. 57]:
tracedist. length): // Выводит: 3
var words:Array = ["this", "that", "the other"]; trace(words.1ength); // Выводит: 3
var cards:Array = new Array(24); // Обратите внимание, что в конструктор
// класса Array передается один числовой // аргумент
trace(cards. length); // Выводит: 24
Значение переменной массива length всегда на единицу больше индекса последнего элемента данного массива. Например, длина массива, элементы которого имеют индексы 0,1 и 2, равна 3. Длина массива, элементы которого имеют индексы 0,1,
2 и 50, равна 51. Именно 51. Несмотря на то что элементы с индексами в диапазоне от 3 до 49 являются незаполненными, они все равно учитываются при определении длины массива. Индекс последнего элемента массива всегда равен результату выражения массив. length — 1 (поскольку индексы начинаются с 0, а не с 1). Таким образом, для обращения к последнему элементу массива массив применяется следующий код:
массив[массив. length - 1]
При добавлении и удалении элементов значение переменной массива length обновляется автоматически, отражая внесенные изменения. На самом деле мы даже можем сами присвоить переменной length значение, чтобы добавить или удалить элементы в конце массива. Этим переменная length массива отличается от переменной length класса String, которая доступна только для чтения. Уменьшение значения переменной length массива приводит к удалению всех элементов, индексы которых превышают новое значение.