Руководство по actionscript. часть 2, стр. 025
С помощью переменной массива length можно создавать циклы для обхода всех элементов массива. Обход элементов массива в цикле является фундаментальной задачей программирования. Чтобы получить представление о возможностях, открывающихся при совместном использовании циклов и массивов, изучите листинг 11.1, в котором осуществляется обход элементов массива soundtracks с целью нахождения позиции элемента со значением «hip hop».
Листинг 11.1. Поиск значения в массиве
// Создание массива
var soundtracks:Array = ["electronic", "hip hop".
"pop", "alternative", "classical"];
// Проверять каждый элемент, чтобы узнать, содержит ли он значение «hip hop» for (var i:int = 0; i < soundtracks.length: i++) { tracecnow examining element: " + i); if (soundtracks[i] == "hip hop") { tracecthe location of 'hip hop' is index: " + i); break;
}
}
Улучшим код листинга 11.1, превратив его в универсальный метод для поиска, который позволит искать произвольный элемент в любом массиве. Если элемент найден, то данный метод вернет позицию найденного элемента в массиве. В противном случае будет возвращено значение -1. Листинг 11.2 демонстрирует этот код.
Листинг 11.2. Универсальная функция для поиска элемента в массиве
public function searchArray (theArray:Array. searchElement:0bject):int { // Проверять каждый элемент, чтобы определить, совпадает ли // его значение со значением параметра searchElement for (var i:int = 0: i < thearray.length: i++) { if (thearray[i] == searchelement) { return i;
return -1;
}
Чтобы проверить, есть ли имя «Dan» среди имен массива userNames, который представляет собой гипотетический массив с именами авторизованных пользователей, мы можем воспользоваться нашим новым методом для поиска в массиве:
if (searchArray(userNames, «Dan») == -1) {
traceCSorry, that username wasn’t found»); } else {
trace(«Wei come to the game, Dan.»);
}
~ I Метод searchArray() демонстрирует код, который необходим для выполнения обхода А элементов массива в цикле, однако этот код не предназначен для использования в ре-¦ ffo’ альной программе. Для определения индекса заданного элемента в реальной программе используйте методы indexOf() и Iastlndex0f() класса Array.