Определение размера массива  ActionScript

 

 

У всех массивов есть переменная экземпляра length, обозначающая текущее  

значение элементов в массиве (включая незаполненные элементы). Для обращения 

к переменной массива length используется оператор «точка» (.), как показано 

в следующем коде: 

массив.1ength 

Рассмотрим несколько примеров: 

var list:Array = [34, 45, 57]; 

trace(list.length); // Выводит: З 

var words:Array = ["this", "that", "the other"]; 

trace(words.length); // Выводит: 3 

var cards:Array = new ArrayB4); // Обратите внимание, что в конструктор 

// класса 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 класса S t ring, которая доступна только для чтения. Уменьшение 
значения переменной length массива приводит к удалению всех элементов,  
индексы которых превышают новое значение. 
С помощью переменной массива length можно создавать циклы для обхода всех 
элементов массива. Обход элементов массива в цикле является  
фундаментальной задачей программирования. Чтобы получить представление о возможностях, 
открывающихся при совместном использовании циклов и массивов, изучите  
листинг 11.1, в котором осуществляется обход элементов массива soundtracks с  
целью нахождения позиции элемента со значением " h ip hop ". 
Листинг 11.1. Поиск значения в массиве 
// Создание массива 
var soundtracks:Array = ["electronic", "hip hop", 
"pop", "alternative", "classical"]; 
// Проверять каждый элемент, чтобы узнать, содержит ли он значение "hip hop" 
for (var i:int = 0; i < soundtracks.length; i++) { 
traceC\'Now examining element: " + i); 
if (soundtracks == "hip hop") { 
traceCThe location of "hip hop\' is index: " + i); 
break; 
Улучшим код листинга 11.1, превратив его в универсальный метод для поиска, 
который позволит искать произвольный элемент в любом массиве. Если элемент 
найден, то данный метод вернет позицию найденного элемента в массиве. В  
противном случае будет возвращено значение -1. Листинг 11.2 демонстрирует этот код. 
Листинг 11.2. Универсальная функция для поиска элемента в массиве 
public function searchArray (theArray:Array. searchElement:Object):int { 
// Проверять каждый элемент, чтобы определить, совпадает ли 
// его значение со значением параметра searchElement 
for (var i:int = 0; i < theArray.length; i++) { 
if (theArray == searchElement) { 
return i; 
Глава 11. Массивы 
return -l; 
Чтобы проверить, есть ли имя "Dan" среди имен массива userNames, который 
представляет собой гипотетический массив с именами авторизованных  
пользователей, мы можем воспользоваться нашим новым методом для поиска в  
массиве: 
if (searchArray(userNames, "Dan") == -1) { 
traceCSorry, that username wasn\'t found"); 
} else { 
trace("Weicome to the game, Dan."); 
}




BACK NEXT

Сайт является частным собранием материалов и представляет собой любительский информационно-образовательный ресурс. Вся информация получена из открытых источников. Администрация не претендует на авторство использованных материалов. Все права принадлежат их правообладателям