ПакетВерхний уровень
Классpublic dynamic class Array
НаследованиеArray Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Класс Array обеспечивает доступ к массивам и их обработку. Индексы массива начинаются с нуля. Это значит, что первый элемент массива имеет индекс [0], второй элемент — индекс [1] и т. д. Чтобы создать объект Array, можно воспользоваться конструктором new Array(). Объект Array() можно также вызвать в виде функции. Кроме того, можно воспользоваться оператором доступа к массиву ([]), чтобы инициализировать массив или выполнить доступ к его элементам.

В элементе массива можно сохранять широкий спектр типов данных, включая числа, строки, объекты и даже другие массивы. Можно создать многомерный массив. Для этого нужно создать индексированный массив и присвоить каждому из его элементов другой индексированный массив. Такой массив считается многомерным, поскольку его можно использовать для представления данных в виде таблицы.

Массивы являются разреженными. Это значит, что один элемент может иметь индекс 0, а другой — индекс 5, но позиции индекса между двумя этими элементами будут пустыми. В подобном случае элементы на позициях с 1 по 4 не определены, что указывает на отсутствие элемента, а не обязательно на присутствие элемента со значением undefined.

Присваивание массива выполняется по ссылке, а не по значению. Когда одна переменная массива присваивается другой переменной массива, они обе относятся к одному и тому же массиву:

 var oneArray:Array = new Array("a", "b", "c");
 var twoArray:Array = oneArray; // Both array variables refer to the same array.
 twoArray[0] = "z";             
 trace(oneArray);               // Output: z,b,c.
 

Не применяйте класс Array для создания массивов ассоциативных элементов (называемых также хэшами), которые представляют собой структуры данных, элементам которых присваиваются имена, а не числа. Чтобы создать массивы ассоциативных элементов, воспользуйтесь классом Object. Хотя ActionScript позволяет создавать массивы ассоциативных элементов с помощью класса Array, ни один из методов и свойств класса Array нельзя использовать с этими массивами.

Класс Array можно расширить, переопределив или добавив методы. Однако этот подкласс необходимо сделать динамическим, чтобы не утратить возможность сохранения данных в массиве.

Посмотреть примеры

См. также

[] (доступ к массиву)
класс Object


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  length : uint
Неотрицательное целое число, которым задается количество элементов в массиве.
Array
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
  
Array(numElements:int = 0)
Позволяет создавать массивы с заданным числом элементов.
Array
  
Array(... values)
Позволяет создавать массив, содержащий заданные элементы.
Array
  
Указанные в параметрах элементы сцепляются с элементами в массиве, и создается новый массив.
Array
  
every(callback:Function, thisObject:* = null):Boolean
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение false для заданной функции.
Array
  
filter(callback:Function, thisObject:* = null):Array
Выполняет тестовую функцию для каждого элемента массива и формирует новый массив из всех элементов, возвращающих значение true для заданной функции.
Array
  
forEach(callback:Function, thisObject:* = null):void
Выполняет функцию для каждого элемента массива.
Array
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
indexOf(searchElement:*, fromIndex:int = 0):int
Ищет элемент в массиве с использованием строгого равенства (===) и возвращает позицию элемента в индексе.
Array
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
Преобразует элементы массива в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку.
Array
  
lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
С использованием строгого равенства (===) ищет элемент в массиве в обратном порядке начиная с последнего элемента, затем возвращает позицию в индексе для подходящего элемента.
Array
  
map(callback:Function, thisObject:* = null):Array
Выполняет функцию для каждого элемента массива и формирует новый массив из элементов, соответствующих результатам функции для каждого элемента исходного массива.
Array
  
pop():*
Удаляет последний элемент из массива и возвращает значение этого элемента.
Array
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
push(... args):uint
Добавляет один или несколько элементов в конец массива и возвращает новую длину массива.
Array
  
Преобразует массив в обратный массив.
Array
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Удаляет первый элемент из массива и возвращает этот элемент.
Array
  
slice(startIndex:int = 0, endIndex:int = 16777215):Array
Возвращает новый массив, состоящий из диапазона элементов исходного массива, не модифицируя исходный массив.
Array
  
some(callback:Function, thisObject:* = null):Boolean
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение true.
Array
  
sort(... args):Array
Сортирует элементы в массиве.
Array
  
sortOn(fieldName:Object, options:Object = null):Array
Сортирует элементы в массиве по одному или нескольким полям массива.
Array
  
splice(startIndex:int, deleteCount:uint, ... values):Array
Добавляет элементы в массив и удаляет элементы из массива.
Array
  
Возвращает строку, представляющую элементы в заданном массиве.
Array
  
Возвращает строку, представляющую элементы в заданном массиве.
Array
  
Добавляет один или несколько элементов в начало массива и возвращает новую длину массива.
Array
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Общедоступные константы
 Константа Определено
  CASEINSENSITIVE : uint = 1
[статические] Задает сортировку без учета регистра для методов сортировки класса Array.
Array
  DESCENDING : uint = 2
[статические] Задает сортировку по убыванию для методов сортировки класса Array.
Array
  NUMERIC : uint = 16
[статические] Задает числовую сортировку (вместо сортировки по символьной строке) для методов сортировки класса Array.
Array
  RETURNINDEXEDARRAY : uint = 8
[статические] Задает сортировку, которая возвращает массив, состоящий из индексов массивов.
Array
  UNIQUESORT : uint = 4
[статические] Задает уникальное требование сортировки для методов сортировки класса Array.
Array
Сведения о свойстве
lengthсвойство
length:uint  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Неотрицательное целое число, которым задается количество элементов в массиве. Это свойство автоматически обновляется, когда в массив добавляются новые элементы. Когда элементу массива присваивается свойство (например, my_array[index] = value), если index является числом, а index+1 превышает значение свойства length, свойство length обновляется, принимая значение index+1.

Примечание. Если свойству length присваивается значение, которое меньше существующей длины, массив усекается.


Реализация
    public function get length():uint
    public function set length(value:uint):void

Пример
Следующий код создает объект Array names со строковым элементом Bill. После этого используется метод push() для добавления еще одного строкового элемента Kyle. Длина массива, определяемая свойством length, составляла один элемент перед применением метода push(). После вызова push() она составляет два элемента. Добавляется еще одна строка (Jeff), которая увеличивает длину объекта names до трех элементов. Затем дважды вызывается метод shift() для удаления элементов Bill и Kyle, после чего параметру length массива присваивается значение "1".

var names:Array = new Array("Bill");
names.push("Kyle");
trace(names.length); // 2

names.push("Jeff");
trace(names.length); // 3

names.shift();
names.shift();
trace(names.length); // 1
Сведения о конструкторе
Array()Конструктор
public function Array(numElements:int = 0)

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Позволяет создавать массивы с заданным числом элементов. Если не указать никаких параметров, создается массив с нулевым количеством элементов. Если указан ряд элементов, создается массив с количеством элементов numElements.

Примечание. В этом классе показаны две записи метода конструктора, поскольку конструктор поддерживает разные типы аргументов. Режим работы конструктора меняется в зависимости от типа и количества переданных аргументов (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

Параметры
numElements:int (default = 0) — Целое число, указывающее количество элементов в массиве.

Выдает
RangeError — Аргумент — это число, которое не является целым числом большим или равным 0.

См. также


Пример

В следующем примере создается новый объект Array myArr без аргументов и с первоначальной длиной 0:
package {
    import flash.display.Sprite;

    public class Array_Array extends Sprite {

        public function Array_Array() {
            var myArr:Array = new Array();
            trace(myArr.length); // 0
        }
    }
}

В следующем примере создается объект Array с 5 начальными элементами и длиной 5. Первый элемент заполняется строкой "one", а в конец массива добавляется строковый элемент "six" с помощью метода push():
package {
    import flash.display.Sprite;

    public class Array_Array_2 extends Sprite {

        public function Array_Array_2() {
            var myArr:Array = new Array(5);
            trace(myArr.length); // 5
            myArr[0] = "one";
            myArr.push("six");
            trace(myArr);         // one,,,,,six
            trace(myArr.length); // 6
        }
    }
}
Array()Конструктор 
public function Array(... values)

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Позволяет создавать массив, содержащий заданные элементы. Можно указывать значения любого типа. Первый элемент в массиве всегда имеет индекс (или позицию) 0.

Примечание. В этом классе показаны две записи конструктора, поскольку конструктор поддерживает разные типы аргументов. Режим работы конструктора меняется в зависимости от типа и количества переданных аргументов (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

Параметры
... values — Список из одного или нескольких произвольных значений, разделенных запятыми.

Примечание. Если в конструктор Array передается единичный числовой параметр, предполагается, что указано свойство массива length.


Выдает
RangeError — Аргумент — это число, которое не является целым числом большим или равным 0.

См. также


Пример

В следующем примере создается новый объект Array с первоначальной длиной 3, массив заполняется строковыми элементами one, two и three, а затем элементы преобразуются в строку.
package {
    import flash.display.Sprite;

    public class Array_Array_3 extends Sprite {

        public function Array_Array_3() {
            var myArr:Array = new Array("one", "two", "three");
            trace(myArr.length); // 3
            trace(myArr);          // one,two,three
        }
    }
}
Сведения о методе
concat()метод
AS3 function concat(... args):Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указанные в параметрах элементы сцепляются с элементами в массиве, и создается новый массив. Если параметры задают массив, элементы этого массива сцепляются.

Параметры

... args — Значение любого типа данных (например, числа, элементы или строки), которые необходимо сцепить в новом массиве. Если значения не передаются, новый массив дублирует исходный массив.

Возвращает
Array — Массив, содержащий элементы из этого массива, за которыми указаны элементы из параметров.

Пример

Следующий код создает четыре объекта Array:
  • Массив numbers, содержащий цифры 1, 2 и 3.
  • Массив letters, содержащий буквы a, b и c.
  • Массив numbersAndLetters, вызывающий метод concat() для создания массива [1,2,3,a,b,c].
  • Массив lettersAndNumbers, вызывающий метод concat() для создания массива [a,b,c,1,2,3].

var numbers:Array = new Array(1, 2, 3);
var letters:Array = new Array("a", "b", "c");
var numbersAndLetters:Array = numbers.concat(letters);
var lettersAndNumbers:Array = letters.concat(numbers);

trace(numbers);       // 1,2,3
trace(letters);       // a,b,c
trace(numbersAndLetters); // 1,2,3,a,b,c
trace(lettersAndNumbers); // a,b,c,1,2,3
every()метод 
AS3 function every(callback:Function, thisObject:* = null):Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

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

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод every() по отношению к массиву myArray:

     myArray.every(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, Flash Player создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
     };
     myArray.every(myFunction, me);
     

Параметры

callback:Function — Функция, выполняемая с каждым элементом массива. Эта функция может содержать простое сравнение (например, item < 20) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
function callback(item:*, index:int, array:Array):Boolean;
 
thisObject:* (default = null) — Объект, используемый для этой функции в качестве this.

Возвращает
Boolean — Логическое значение true, если все элементы в массиве возвращают значение true для указанной функции; в противном случае присваивается значение false.

См. также


Пример

В следующем примере тестируются два массива, чтобы определить, является ли каждый элемент того или иного массива числом. Указываются также результаты теста: параметр isNumeric имеет значение true для первого массива и false для второго:
package {
    import flash.display.Sprite;
    public class Array_every extends Sprite {
        public function Array_every() {
            var arr1:Array = new Array(1, 2, 4);
            var res1:Boolean = arr1.every(isNumeric);
            trace("isNumeric:", res1); // true
 
            var arr2:Array = new Array(1, 2, "ham");
            var res2:Boolean = arr2.every(isNumeric);
            trace("isNumeric:", res2); // false
        }
        private function isNumeric(element:*, index:int, arr:Array):Boolean {
            return (element is Number);
        }
    }
}
filter()метод 
AS3 function filter(callback:Function, thisObject:* = null):Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Выполняет тестовую функцию для каждого элемента массива и формирует новый массив из всех элементов, возвращающих значение true для заданной функции. Если элемент возвращает значение false, он не включается в новый массив.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод filter() по отношению к массиву с именем myArray:

 
     myArray.filter(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, Flash Player создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.filter(myFunction, me);
     

Параметры

callback:Function — Функция, выполняемая с каждым элементом массива. Эта функция может содержать простое сравнение (например, item < 20) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):Boolean;
 
thisObject:* (default = null) — Объект, используемый для этой функции в качестве this.

Возвращает
Array — Новый массив, содержащий все элементы исходного массива, вернувшие значение true.

См. также


Пример

В следующем примере создается массив из всех сотрудников-менеджеров:
package {
    import flash.display.Sprite;
    public class Array_filter extends Sprite {
        public function Array_filter() {
            var employees:Array = new Array();
            employees.push({name:"Employee 1", manager:false});
            employees.push({name:"Employee 2", manager:true});
            employees.push({name:"Employee 3", manager:false});
            trace("Employees:");
            employees.forEach(traceEmployee);
            
            var managers:Array = employees.filter(isManager);
            trace("Managers:");
            managers.forEach(traceEmployee);
        }
        private function isManager(element:*, index:int, arr:Array):Boolean {
            return (element.manager == true);
        }
        private function traceEmployee(element:*, index:int, arr:Array):void {
            trace("\t" + element.name + ((element.manager) ? " (manager)" : ""));
        }
    }
}
forEach()метод 
AS3 function forEach(callback:Function, thisObject:* = null):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Выполняет функцию для каждого элемента массива.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод forEach() по отношению к массиву с именем myArray:

     myArray.forEach(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, Flash Player создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.forEach(myFunction, me);
     

Параметры

callback:Function — Функция, выполняемая с каждым элементом массива. Эта функция может содержать простую команду (например, инструкция trace()) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):void;
 
thisObject:* (default = null) — Объект, используемый для этой функции в качестве this.


Пример

В следующем примере инструкция trace() выполняется в функции traceEmployee() по отношению к каждому элементу массива:
package {
    import flash.display.Sprite;
    public class Array_forEach extends Sprite {
        public function Array_forEach() {
            var employees:Array = new Array();
            employees.push({name:"Employee 1", manager:false});
            employees.push({name:"Employee 2", manager:true});
            employees.push({name:"Employee 3", manager:false});
            trace(employees);
            employees.forEach(traceEmployee);
        }
        private function traceEmployee(element:*, index:int, arr:Array):void {
            trace(element.name + " (" + element.manager + ")");
        }
    }
}

В следующем примере инструкция trace() также выполняется в немного измененной функции traceEmployee() по отношению к каждому элементу массива:
package {
    import flash.display.Sprite;
    public class Array_forEach_2 extends Sprite {
        public function Array_forEach_2() {
            var employeeXML:XML = <employees>
                    <employee name="Steven" manager="false" />
                    <employee name="Bruce" manager="true" />
                    <employee name="Rob" manager="false" />
                </employees>;
            var employeesList:XMLList = employeeXML.employee;
            var employeesArray:Array = new Array();
            for each (var tempXML:XML in employeesList) {
                employeesArray.push(tempXML);
            }
            employeesArray.sortOn("@name");
            employeesArray.forEach(traceEmployee);
        }
        private function traceEmployee(element:*, index:Number, arr:Array):void {
            trace(element.@name + ((element.@manager == "true") ? " (manager)" : ""));
        }
    }
}
indexOf()метод 
AS3 function indexOf(searchElement:*, fromIndex:int = 0):int

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Ищет элемент в массиве с использованием строгого равенства (===) и возвращает позицию элемента в индексе.

Параметры

searchElement:* — Элемент, который нужно найти в массиве.
 
fromIndex:int (default = 0) — Место в массиве, в которого начинается поиск элемента.

Возвращает
int — Позиция индекса, начинающегося с нуля, для элемента массива. Если аргумент searchElement не найден, возвращается значение "-1".

См. также


Пример

В следующем примере показана позиция указанного массива:
package {
    import flash.display.Sprite;
    public class Array_indexOf extends Sprite {
        public function Array_indexOf() {
            var arr:Array = new Array(123,45,6789);
            arr.push("123-45-6789");
            arr.push("987-65-4321");
            
            var index:int = arr.indexOf("123");
            trace(index); // -1
            
            var index2:int = arr.indexOf(123);
            trace(index2); // 0
        }
    }
}
join()метод 
AS3 function join(sep:*):String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Преобразует элементы массива в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку. Вложенный массив всегда разделяется запятой (,), а не разделителем, переданным методу join().

Параметры

sep:* (default = NaN) — Символ или строка, которые разделяют элементы массива в возвращенной строке. Если этот параметр пропустить, в качестве разделителя по умолчанию используется запятая.

Возвращает
String — Строка, состоящая из элементов массива, преобразованных в строки и разделенных указанным параметром.

См. также


Пример

Следующий код создает объект Array myArr с элементами один, два, три и затем строку, содержащую один, два и три, с помощью метода join().

var myArr:Array = new Array("one", "two", "three");
var myStr:String = myArr.join(" and ");
trace(myArr); // one,two,three
trace(myStr); // one and two and three

Следующий код создает объект Array specialChars с элементами (, ), - и пробелом, а затем создает строку с номером (888) 867-5309. После этого с помощью цикла for он удаляет все типы специальных символов, перечисленные в specialChars, чтобы создать строку (myStr), которая содержит только цифры телефонного номера: 888675309. Учтите, что другие символы (например, +) могли быть включены в список specialChars. При этом данная процедура начинает поддерживать форматы международных телефонных номеров.

var phoneString:String = "(888) 867-5309";

var specialChars:Array = new Array("(", ")", "-", " ");
var myStr:String = phoneString;

var ln:uint = specialChars.length;
for(var i:uint; i < ln; i++) {
    myStr = myStr.split(specialChars[i]).join("");
}

var phoneNumber:Number = new Number(myStr);

trace(phoneString); // (888) 867-5309
trace(phoneNumber); // 8888675309
lastIndexOf()метод 
AS3 function lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Ищет элемент в массиве в обратном порядке начиная с последнего элемента с использованием строгого равенства (===), затем возвращает позицию в индексе для подходящего элемента.

Параметры

searchElement:* — Элемент, который нужно найти в массиве.
 
fromIndex:int (default = 0x7fffffff) — Место в массиве, в которого начинается поиск элемента. Значение по умолчанию — максимально допустимое значение индекса. Если параметр fromIndex не указан, поиск начинается с последнего элемента массива.

Возвращает
int — Позиция индекса, начинающегося с нуля, для элемента массива. Если аргумент searchElement не найден, возвращается значение "-1".

См. также


Пример

В следующем примере показана позиция указанного массива:
package {
    import flash.display.Sprite;
    public class Array_lastIndexOf extends Sprite {
        public function Array_lastIndexOf() {
            var arr:Array = new Array(123,45,6789,123,984,323,123,32);
            
            var index:int = arr.indexOf(123);
            trace(index); // 0
            
            var index2:int = arr.lastIndexOf(123);
            trace(index2); // 6
        }
    }
}
map()метод 
AS3 function map(callback:Function, thisObject:* = null):Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Выполняет функцию для каждого элемента массива и формирует новый массив из элементов, соответствующих результатам функции для каждого элемента исходного массива.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод map() по отношению к массиву с именем myArray:

     myArray.map(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, Flash Player создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.map(myFunction, me);
     

Параметры

callback:Function — Функция, выполняемая с каждым элементом массива. Эта функция может содержать простую команду (например, изменение регистра строкового массива) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):void;
 
thisObject:* (default = null) — Объект, используемый для этой функции в качестве this.

Возвращает
Array — Новый массив, который содержит результаты функции, выполняемой по отношению к каждому элементу исходного массива.

См. также


Пример

В следующем примере все строчные буквы в элементах массива заменяются прописными:
package {
    import flash.display.Sprite;
    public class Array_map extends Sprite {
        public function Array_map() {
            var arr:Array = new Array("one", "two", "Three");
            trace(arr); // one,two,Three

            var upperArr:Array = arr.map(toUpper);
            trace(upperArr); // ONE,TWO,THREE
        }
        private function toUpper(element:*, index:int, arr:Array):String {
            return String(element).toUpperCase();
        }
    }
}
pop()метод 
AS3 function pop():*

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Удаляет последний элемент из массива и возвращает значение этого элемента.

Возвращает
* — Значение последнего элемента (любого типа данных) в указанном массиве.

См. также


Пример

Следующий код создает объект Array letters с элементами a, b и c. Последний элемент (c) удаляется впоследствии из массива с помощью метода pop() и присваивается объекту String letter.

var letters:Array = new Array("a", "b", "c");
trace(letters); // a,b,c
var letter:String = letters.pop();
trace(letters); // a,b
trace(letter);     // c
push()метод 
AS3 function push(... args):uint

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Добавляет один или несколько элементов в конец массива и возвращает новую длину массива.

Параметры

... args — Одно или несколько значений, добавляемых в массив.

Возвращает
uint — Целое число, выражающее длину нового массива.

См. также


Пример

Следующий код создает пустой объект Array letters, а затем заполняет массив элементами a, b и c с помощью метода push().

var letters:Array = new Array();

letters.push("a");
letters.push("b");
letters.push("c");

trace(letters.toString()); // a,b,c

Следующий код создает объект Array letters, который сначала заполняется элементом a. После этого однократно используется метод push() для добавления элементов b и c в конец массива, который находится на расстоянии трех элементов от элемента, созданного методом push.

var letters:Array = new Array("a");
var count:uint = letters.push("b", "c");

trace(letters); // a,b,c
trace(count);   // 3
reverse()метод 
AS3 function reverse():Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Преобразует массив в обратный массив.

Возвращает
Array — Новый массив.

Пример

Следующий код создает объект Array letters с элементами a, b и c. Порядок элементов массива заменяется затем на противоположный методом reverse(), чтобы создать массив [c,b,a].

var letters:Array = new Array("a", "b", "c");
trace(letters); // a,b,c
letters.reverse();
trace(letters); // c,b,a
shift()метод 
AS3 function shift():*

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Удаляет первый элемент из массива и возвращает этот элемент. Оставшиеся элементы массива перемещаются с исходной позицию "i" на позицию "i-1".

Возвращает
* — Первый элемент (любого типа данных) в массиве.

См. также


Пример

Следующий код создает объект Array letters с элементами a, b и c. Затем применяется метод shift() для удаления первого элемента (a) из объекта letters и присвоения его строке firstLetter.

var letters:Array = new Array("a", "b", "c");
var firstLetter:String = letters.shift();
trace(letters);     // b,c
trace(firstLetter); // a
slice()метод 
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает новый массив, состоящий из диапазона элементов исходного массива, не модифицируя исходный массив. Возвращенный массив включает элемент startIndex и все элементы вплоть до него, исключая элемент endIndex.

Если параметры не переданы, создается дубликат исходного массива.

Параметры

startIndex:int (default = 0) — Число, указывающее на индекс начальной позиции среза. Если startIndex — отрицательное число, начальной позицией становится конец массива, последнему элементу которого присваивается позиция "-1".
 
endIndex:int (default = 16777215) — Число, указывающее на индекс конечной позиции среза. Если этот параметр пропустить, срез включает все элементы от начальной позиции до конца массива. Если endIndex — отрицательное число, конечная позиция указывается с конца массива, последнему элементу которого присваивается позиция "-1".

Возвращает
Array — Массив, состоящий из диапазона элементов исходного массива.

Пример

Следующий код создает объект Array letters с элементами [a,b,c,d,e,f]. После этого создается массив someLetters путем вызова метода slice(), который применяется к элементам с первого (b) по третий (d). В результате получается массив с элементами b и c.

var letters:Array = new Array("a", "b", "c", "d", "e", "f");
var someLetters:Array = letters.slice(1,3);

trace(letters);     // a,b,c,d,e,f
trace(someLetters); // b,c

Следующий код создает объект Array letters с элементами [a,b,c,d,e,f]. Затем создается массив someLetters путем вызова метода slice() по отношению ко второму элементу (c). В результате получается массив с элементами [c,d,e,f].

var letters:Array = new Array("a", "b", "c", "d", "e", "f");
var someLetters:Array = letters.slice(2);

trace(letters);     // a,b,c,d,e,f
trace(someLetters); // c,d,e,f

Следующий код создает объект Array letters с элементами [a,b,c,d,e,f]. После этого создается массив someLetters путем вызова метода slice() по отношению ко второму элементу с конца (e). Это приводит к появлению массива с элементами e и f.

var letters:Array = new Array("a", "b", "c", "d", "e", "f");
var someLetters:Array = letters.slice(-2);

trace(letters);     // a,b,c,d,e,f
trace(someLetters); // e,f
some()метод 
AS3 function some(callback:Function, thisObject:* = null):Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

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

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод some() по отношению к массиву с именем myArray:

     myArray.some(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, Flash Player создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.some(myFunction, me);
     

Параметры

callback:Function — Функция, выполняемая с каждым элементом массива. Эта функция может содержать простое сравнение (например, item < 20) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):Boolean;
 
thisObject:* (default = null) — Объект, используемый для этой функции в качестве this.

Возвращает
Boolean — Логическое значение true, если какие-либо элементы в массиве возвращают значение true для указанной функции; в противном случае присваивается значение false.

См. также


Пример

В следующем примере показано, какие значения не определены:
package {
    import flash.display.Sprite;
    public class Array_some extends Sprite {
        public function Array_some() {
            var arr:Array = new Array();
            arr[0] = "one";
            arr[1] = "two";
            arr[3] = "four";
            var isUndef:Boolean = arr.some(isUndefined);
            if (isUndef) {
                trace("array contains undefined values: " + arr);
            } else {
                trace("array contains no undefined values.");
            }
        }
        private function isUndefined(element:*, index:int, arr:Array):Boolean {
            return (element == undefined);
        }
    }
}
sort()метод 
AS3 function sort(... args):Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Сортирует элементы в массиве. Этот метод применяется для сортировки по значениям Юникода. (ASCII — это подмножество Юникода.)

По умолчанию Array.sort() действует следующим образом:

Чтобы выполнить сортировку массива, используя параметры, которые отличаются от параметров по умолчанию, можно либо воспользоваться одной из возможностей сортировки, описанной в разделе sortOptions описания параметра ...args, либо создать собственную пользовательскую функцию сортировки. При создании пользовательской функции вызывается метод sort(), а имя пользовательской функции используется в качестве первого аргумента (compareFunction)

Параметры

... args — Аргументы, указывающие на функцию сравнения и одно или несколько значений, определяющих режим сортировки.

В этом методе используется синтаксис и порядок аргументов Array.sort(compareFunction, sortOptions), где аргументы определяются следующим образом:

  • compareFunction — функция сравнения, используемая для определения порядка сортировки элементов в массиве. Этот аргумент является необязательным. Функция сравнения требует наличия двух сравниваемых аргументов. При наличии элементов A и B результат выполнения функции compareFunction может иметь одно из следующих трех значений:
    • -1, если A должно быть перед B в отсортированной последовательности
    • 0, если A равно B
    • 1, если A должно быть после B в отсортированной последовательности
  • sortOptions — одно или несколько чисел или определенных констант, разделенных оператором | (побитовое ИЛИ), которые меняют режим сортировки по умолчанию. Этот аргумент является необязательным. Параметр sortOptions может принимать следующие значения:
    • 1 или Array.CASEINSENSITIVE
    • 2 или Array.DESCENDING
    • 4 или Array.UNIQUESORT
    • 8 или Array.RETURNINDEXEDARRAY
    • 16 или Array.NUMERIC
    Дополнительную информацию см. в описании метода Array.sortOn().

Примечание. Метод Array.sort() определен в третьей редакции спецификации языка ECMAScript (ECMA-262), но методы сортировки массивов, реализованные в Flash Player 7, являются расширениями ECMA-262.

Возвращает
Array — Возвращаемое значение зависит от того, передаются ли аргументы (см. список):
  • Если указывается значение 4 или Array.UNIQUESORT для аргумента sortOptions параметра ...args и два или более сортируемых элемента имеют идентичные поля сортировки, Flash возвращает значение 0 и не модифицирует массив.
  • Если указывается значение 8 или Array.RETURNINDEXEDARRAY для аргумента sortOptions параметра ...args, Flash возвращает отсортированный числовой массив индексов, отражающий результаты сортировки, и не модифицирует массив.
  • В противном случае Flash ничего не возвращает и изменяет массив, чтобы отразить порядок сортировки.

См. также


Пример

Следующий код создает объект Array vegetables с элементами [spinach, green pepper, cilantro, onion, avocado]. После этого массив сортируется с помощью метода sort(), который вызывается без параметров. В результате объект vegetables сортируется в алфавитном порядке ([avocado, cilantro, green pepper, onion, spinach]).

var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "cilantro",
                 "onion",
                 "avocado");

trace(vegetables); // spinach,green pepper,cilantro,onion,avocado
vegetables.sort();
trace(vegetables); // avocado,cilantro,green pepper,onion,spinach

Следующий код создает объект Array vegetables с элементами [spinach, green pepper, Cilantro, Onion, Avocado]. Сортировка этого массива выполняется методом sort(), который в первый раз вызывается без параметров. Результат выглядит следующим образом: [Avocado,Cilantro,Onion,green pepper,spinach]. Затем снова вызывается метод sort(), применяемый к объекту vegetables, в котором в качестве параметра выбрана константа CASEINSENSITIVE. В результате объект vegetables сортируется в алфавитном порядке ([Avocado, Cilantro, green pepper, Onion, spinach]).

var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "Cilantro",
                 "Onion",
                 "Avocado");

vegetables.sort();
trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach
vegetables.sort(Array.CASEINSENSITIVE);
trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach

Следующий код создает пустой объект Array vegetables, который затем заполняется путем пяти вызовов метода push(). Каждый раз при вызове метода push() создается новый объект Vegetable. Для этого вызывается конструктор Vegetable(), который принимает объекты String (name) и Number (price). Пятикратный вызов метода push() с указанными значениями приводит к формированию следующего массива: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]. Затем для сортировки массива используется метод sort(). В результате появляется массив [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44].
var vegetables:Array = new Array();
vegetables.push(new Vegetable("lettuce", 1.49));
vegetables.push(new Vegetable("spinach", 1.89));
vegetables.push(new Vegetable("asparagus", 3.99));
vegetables.push(new Vegetable("celery", 1.29));
vegetables.push(new Vegetable("squash", 1.44));

trace(vegetables);
// lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44

vegetables.sort();

trace(vegetables);
// asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44

//The following code defines the Vegetable class
class Vegetable {
    private var name:String;
    private var price:Number;

    public function Vegetable(name:String, price:Number) {
        this.name = name;
        this.price = price;
    }

    public function toString():String {
        return " " + name + ":" + price;
    }
}

Следующий пример в точности напоминает предыдущий за исключением того, что метод sort() используется вместе с пользовательской функцией сортировки (sortOnPrice), выполняющей сортировку по цене, а не в алфавитном порядке. Учтите, что цена извлекается с помощью новой функции getPrice().

var vegetables:Array = new Array();
vegetables.push(new Vegetable("lettuce", 1.49));
vegetables.push(new Vegetable("spinach", 1.89));
vegetables.push(new Vegetable("asparagus", 3.99));
vegetables.push(new Vegetable("celery", 1.29));
vegetables.push(new Vegetable("squash", 1.44));

trace(vegetables);
// lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44

vegetables.sort(sortOnPrice);

trace(vegetables);
// celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99

function sortOnPrice(a:Vegetable, b:Vegetable):Number {
    var aPrice:Number = a.getPrice();
    var bPrice:Number = b.getPrice();

    if(aPrice > bPrice) {
        return 1;
    } else if(aPrice < bPrice) {
        return -1;
    } else  {
        //aPrice == bPrice
        return 0;
    }
}

// The following code defines the Vegetable class and should be in a separate package.
class Vegetable {
    private var name:String;
    private var price:Number;

    public function Vegetable(name:String, price:Number) {
        this.name = name;
        this.price = price;
    }

    public function getPrice():Number {
        return price;
    }

    public function toString():String {
        return " " + name + ":" + price;
    }
}

Следующий код создает объект Array numbers с элементами [3,5,100,34,10]. Вызов метода sort() без параметров приводит к сортировке в алфавитном порядке. При этом появляется нежелательный результат: [10,100,3,34,5]. Чтобы правильно отсортировать числовые значения, необходимо передать константу NUMERIC методу sort(), который сортирует числа следующим образом: [3,5,10,34,100].

Примечание. Режим функции sort() по умолчанию состоит в том, чтобы обрабатывать каждую сущность как строку. Аргумент Array.NUMERIC в действительности не преобразует другие типы данных в тип данных Number; он просто позволяет алгоритму сортировки распознавать числа.


var numbers:Array = new Array(3,5,100,34,10);

trace(numbers); // 3,5,100,34,10
numbers.sort();
trace(numbers); // 10,100,3,34,5
numbers.sort(Array.NUMERIC);
trace(numbers); // 3,5,10,34,100
sortOn()метод 
AS3 function sortOn(fieldName:Object, options:Object = null):Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Сортирует элементы в массиве по одному или нескольким полям массива. Массив должен обладать следующими характеристиками:

При указании нескольких параметров fieldName первое поле относится к первичному полю сортировки, второе — к вторичному полю сортировки и т.д. Сортировка в Flash выполняется по значениям Юникода. (ASCII — это подмножество Юникода.) Если любой из сравниваемых элементов не содержит поле, указанное в параметре fieldName, предполагается, что ему присвоено значение undefined, а элементы последовательно расположены в отсортированном массиве без определенного порядка.

По умолчанию Array.sortOn() действует следующим образом:

В Flash Player 7 добавлен параметр options, который можно применять для переопределения режима сортировки по умолчанию. Чтобы отсортировать простой массив (например, массив, у которого только одно поле) или указать порядок сортировки, который не поддерживается параметром options, выберите Array.sort().

Чтобы установить несколько флагов, разделите их побитовыми операторами ИЛИ (|):

  my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
  

В Flash Player 8 добавлена возможность выбора разных вариантов сортировки для каждого поля, когда сортировка выполняется более чем по одному полю. В Flash Player, начиная с версии 8, параметр options поддерживает массив вариантов сортировки. При этом каждый вариант сортировки соответствует полю сортировки в параметре fieldName. В следующем примере первичное поле сортировки (a) сортируется в нисходящем порядке, вторичное поле сортировки (b) — с помощью численной сортировки, а третичное поле (c) — с помощью сортировки, не зависящей от регистра:

  Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
  

Примечание. Массивы fieldName и options должны иметь одно и то же количество элементов; в противном случае массив options игнорируется. Кроме того, варианты Array.UNIQUESORT и Array.RETURNINDEXEDARRAY могут выступать только в роли первого элемента массива. В противном случае они игнорируются.

Параметры

fieldName:Object — Строка, указывающая на поле, которое должно использоваться в качестве значения сортировки, или на массив, первый элемент которого представляет собой первичное поле сортировки, второй — вторичное поле сортировки и т.д.
 
options:Object (default = null) — Одно или несколько чисел или имен определенных констант, разделенные побитовым оператором ИЛИ (|) и управляющие режимом сортировки. Параметр options может принимать следующие значения:
  • Array.CASEINSENSITIVE или 1
  • Array.DESCENDING или 2
  • Array.UNIQUESORT или 4
  • Array.RETURNINDEXEDARRAY или 8
  • Array.NUMERIC или 16

Подсказки для кодов включаются, если используется строковый формат флага (например, DESCENDING) вместо числового (2).

Возвращает
Array — Возвращаемое значение зависит от наличия переданных параметров:
  • Если выбрано значение 4 или Array.UNIQUESORT для параметра options и два и более сортируемых элементов имеют одинаковые поля сортировки, возвращается значение 0, а сам массив остается неизменным.
  • Если присвоить значение 8 или Array.RETURNINDEXEDARRAY параметру options, возвращается массив, отражающий результаты сортировки, а сам массив остается неизменным.
  • В противном случае не возвращается ничего, а массив изменяется, отражая порядок сортировки.

См. также


Пример

Следующий код создает пустой объект Array vegetables, который затем заполняется путем пяти вызовов метода push(). Каждый раз при вызове метода push() создается новый объект Vegetable. Для этого вызывается конструктор Vegetable(), который принимает объекты String (name) и Number (price). Пятикратный вызов метода push() с указанными значениями приводит к формированию следующего массива: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]. После этого используется метод sortOn() с параметром name, создающий следующий массив: [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]. После этого снова вызывается метод sortOn() с параметром price, а также константами NUMERIC и DESCENDING. Он создает массив, отсортированный по числам в нисходящем порядке: [asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29].

var vegetables:Array = new Array();
vegetables.push(new Vegetable("lettuce", 1.49));
vegetables.push(new Vegetable("spinach", 1.89));
vegetables.push(new Vegetable("asparagus", 3.99));
vegetables.push(new Vegetable("celery", 1.29));
vegetables.push(new Vegetable("squash", 1.44));

trace(vegetables);
// lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44

vegetables.sortOn("name");
trace(vegetables);
// asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44

vegetables.sortOn("price", Array.NUMERIC | Array.DESCENDING);
trace(vegetables);
// asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29

class Vegetable {
    public var name:String;
    public var price:Number;

    public function Vegetable(name:String, price:Number) {
        this.name = name;
        this.price = price;
    }

    public function toString():String {
        return " " + name + ":" + price;
    }
}

Следующий код создает пустой объект Array records, который затем заполняется путем трех вызовов метода push(). При каждом вызове метода push() строки имя, город и почтовый индекс добавляются в объект records. Печать элементов массива производится с помощью циклов for. Первый цикл for выводит элементы на печать в том порядке, в каком они были добавлены. Второй цикл for выполняется после того, как объект records был отсортирован по имени и затем по городу с помощью метода sortOn(). Третий цикл for приводит к иным результатам, поскольку объект records сортируется еще раз сначала по городу, а затем по имени.


var records:Array = new Array();
records.push({name:"john", city:"omaha", zip:68144});
records.push({name:"john", city:"kansas city", zip:72345});
records.push({name:"bob", city:"omaha", zip:94010});

for(var i:uint = 0; i < records.length; i++) {
    trace(records[i].name + ", " + records[i].city);
}
// Results:
// john, omaha
// john, kansas city
// bob, omaha

trace("records.sortOn('name', 'city');");
records.sortOn(["name", "city"]);
for(var i:uint = 0; i < records.length; i++) {
    trace(records[i].name + ", " + records[i].city);
}
// Results:
// bob, omaha
// john, kansas city
// john, omaha

trace("records.sortOn('city', 'name');");
records.sortOn(["city", "name"]);
for(var i:uint = 0; i < records.length; i++) {
    trace(records[i].name + ", " + records[i].city);
}
// Results:
// john, kansas city
// bob, omaha
// john, omaha

Следующий код создает пустой объект Array users, который затем заполняется путем четырех вызовов метода push(). Каждый раз при вызове метода push() создается объект User с помощью конструктора User(). В число пользователей добавляются строка name и uint age. В результате получается набор массивов [Bob:3,barb:35,abcd:3,catchy:4].

Затем массив сортируется следующими способами:

  1. Только по имени, создавая массив [Bob:3,abcd:3,barb:35,catchy:4]
  2. По имени и с константой CASEINSENSITIVE, создавая массив [abcd:3,barb:35,Bob:3,catchy:4]
  3. По имени и с константами CASEINSENSITIVE и DESCENDING, создавая массив [catchy:4,Bob:3,barb:35,abcd:3]
  4. Только по возрасту, создавая массив [abcd:3,Bob:3,barb:35,catchy:4]
  5. По возрасту и с константой NUMERIC, создавая массив [Bob:3,abcd:3,catchy:4,barb:35]
  6. По возрасту и с константами DESCENDING и NUMERIC, создавая массив [barb:35,catchy:4,Bob:3,abcd:3]

Затем создается массив indices, которому присваиваются результаты сортировки по возрасту с использованием констант NUMERIC и RETURNINDEXEDARRAY. В результате появляется массив [Bob:3,abcd:3,catchy:4,barb:35], который впоследствии выводится на печать с помощью цикла for.


class User {
    public var name:String;
    public var age:Number;
    public function User(name:String, age:uint) {
        this.name = name;
        this.age = age;
    }

    public function toString():String {
        return this.name + ":" + this.age;
    }
}

var users:Array = new Array();
users.push(new User("Bob", 3));
users.push(new User("barb", 35));
users.push(new User("abcd", 3));
users.push(new User("catchy", 4));

trace(users); // Bob:3,barb:35,abcd:3,catchy:4

users.sortOn("name");
trace(users); // Bob:3,abcd:3,barb:35,catchy:4

users.sortOn("name", Array.CASEINSENSITIVE);
trace(users); // abcd:3,barb:35,Bob:3,catchy:4

users.sortOn("name", Array.CASEINSENSITIVE | Array.DESCENDING);
trace(users); // catchy:4,Bob:3,barb:35,abcd:3

users.sortOn("age");
trace(users); // abcd:3,Bob:3,barb:35,catchy:4

users.sortOn("age", Array.NUMERIC);
trace(users); // Bob:3,abcd:3,catchy:4,barb:35

users.sortOn("age", Array.DESCENDING | Array.NUMERIC);
trace(users); // barb:35,catchy:4,Bob:3,abcd:3

var indices:Array = users.sortOn("age", Array.NUMERIC | Array.RETURNINDEXEDARRAY);
var index:uint;
for(var i:uint = 0; i < indices.length; i++) {
    index = indices[i];
    trace(users[index].name, ": " + users[index].age);
}

// Results:
// Bob : 3
// abcd : 3
// catchy : 4
// barb : 35
splice()метод 
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Добавляет элементы в массив и удаляет элементы из массива. Этот метод изменяет массив, не создавая копии.

Примечание. Чтобы переопределить этот метод в подклассе Array, укажите для параметров значение ...args как показано в примере:

  public override function splice(...args) {
    // your statements here
  }
  

Параметры

startIndex:int — Целое число, указывающее индекс элемента в массиве, откуда начинается вставка или удаление. Чтобы указать позицию относительно конца массива, можно использовать отрицательное число (например, "-1" — это последний элемент массива).
 
deleteCount:uint — Целое число, указывающее количество удаляемых элементов. Это число включает элемент, указанный в параметре startIndex. Если значение параметра deleteCount не указано, метод удаляет все значения, начиная с элемента startIndex до последнего элемента в массиве. Если значение равно 0, элементы не удаляются.
 
... values — Необязательный список, состоящий из одного или нескольких значений, разделенных запятыми, или массив, который вставляется в массив в позиции, указанной параметром startIndex.

Возвращает
Array — Массив, содержащий элементы, удаленные из исходного массива.

Пример

Следующий код создает объект Array vegetables с элементами [spinach, green pepper, cilantro, onion, avocado]. Затем вызывается метод splice() с параметрами 2 и 2, присваивающий cilantro и onion массиву со срезом. Массив vegetables содержит при этом элементы [spinach,green pepper,avocado]. Вторично вызывается метод splice() с параметрами 1, 0, и массив со срезом присваивает [cilantro,onion] в качестве второго элемента vegetables.

var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "cilantro",
                 "onion",
                 "avocado");

var spliced:Array = vegetables.splice(2, 2);
trace(vegetables); // spinach,green pepper,avocado
trace(spliced);    // cilantro,onion

vegetables.splice(1, 0, spliced);
trace(vegetables); // spinach,cilantro,onion,green pepper,avocado


Учтите, что отслеживание cilantro и onion выполняется так, как если бы в vegetables было 5 элементов, хотя фактически в нем 4 элемента (а второй из них является другим массивом, содержащим два элемента). Чтобы добавить cilantro и onion по отдельности, необходимо использовать следующее:
 
var vegetables:Array = new Array("spinach",
                 "green pepper",
                 "cilantro",
                 "onion",
                 "avocado");
 
 var spliced:Array = vegetables.splice(2, 2);
 trace(vegetables); // spinach,green pepper,avocado
 trace(spliced);    // cilantro,onion
 
 vegetables.splice(1, 0, "cilantro", "onion");
 trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
toLocaleString()метод 
public function toLocaleString():String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает строку, представляющую элементы в заданном массиве. Каждый элемент в массиве, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. В рамках ActionScript 3.0 этот метод возвращает то же значение, что и метод Array.toString().

Возвращает
String — Строка с элементами массива.

См. также

toString()метод 
public function toString():String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает строку, представляющую элементы в заданном массиве. Каждый элемент в массиве, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. Чтобы указать пользовательский разделитель, примените метод Array.join().

Возвращает
String — Строка с элементами массива.

См. также


Пример

Следующий код создает объект Array, преобразует значения в строки и сохраняет их в переменной vegnums с типом данных String.

var vegetables:Array = new Array();
vegetables.push(1);
vegetables.push(2);
vegetables.push(3);
vegetables.push(4);
vegetables.push(5);
var vegnums:String = vegetables.toString();
trace(vegnums+",6");
// 1,2,3,4,5,6
unshift()метод 
AS3 function unshift(... args):uint

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Добавляет один или несколько элементов в начало массива и возвращает новую длину массива. Другие элементы массива смещаются с исходных позиций (с "i" на "i+1").

Параметры

... args — Одно или несколько чисел, элементов или переменных, вставляемых в начало массива.

Возвращает
uint — Целое число, выражающее новую длину массива.

См. также


Пример

Следующий код создает пустой объект Array names. Строки Bill и Jeff добавлены с помощью метода push(), а строки Alfred и Kyle добавлены в начало names путем двух вызовов метода unshift().

var names:Array = new Array();
names.push("Bill");
names.push("Jeff");

trace(names); // Bill,Jeff

names.unshift("Alfred");
names.unshift("Kyle");

trace(names); // Kyle,Alfred,Bill,Jeff
Сведения о константе
CASEINSENSITIVEКонстанта
public static const CASEINSENSITIVE:uint = 1

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Задает сортировку без учета регистра для методов сортировки класса Array. Эту константу можно использовать для параметра options в методе sort() или sortOn().

Значение константы равно 1.

См. также

DESCENDINGКонстанта  
public static const DESCENDING:uint = 2

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Задает сортировку по убыванию для методов сортировки класса Array. Эту константу можно использовать для параметра options в методе sort() или sortOn().

Значение константы равно 2.

См. также

NUMERICКонстанта  
public static const NUMERIC:uint = 16

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Задает числовую сортировку (вместо сортировки по символьной строке) для методов сортировки класса Array. Включение этой константы в параметр options приводит к тому, что методы sort() и sortOn() сортируют числа как числовые значения, а не как строки с числовыми значениями. Без константы NUMERIC сортировка обрабатывает каждый элемент массива как символьную строку и выдает результаты согласно порядку Юникода.

Например, если имеется массив значений [2005, 7, 35], а константа NUMERIC не включена в параметр options, отсортированный массив выглядит как [2005, 35, 7], но если константа NUMERIC включена, он выглядит следующим образом: [7, 35, 2005].

Эта константа применяется только к числам в массиве; она не применяется к строкам, которые содержат числовые данные (например, ["23", "5"]).

Значение константы равно 16.

См. также

RETURNINDEXEDARRAYКонстанта  
public static const RETURNINDEXEDARRAY:uint = 8

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Задает сортировку, которая возвращает массив, состоящий из индексов массивов. Эту константу можно использовать для параметра options в методе sort() или sortOn(). Таким образом, у вас есть доступ к нескольким представлениям элементов массива в то время, как исходный массив остается неизменным.

Значение константы равно 8.

См. также

UNIQUESORTКонстанта  
public static const UNIQUESORT:uint = 4

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Задает уникальное требование сортировки для методов сортировки класса Array. Эту константу можно использовать для параметра options в методе sort() или sortOn(). Эта уникальная возможность прекращает сортировку, если любые два сортируемых элемента имеют одинаковые значения.

Значение этой константы равно 4.

См. также

Примеры Как пользоваться примерами
ArrayExample.as

В следующем примере создается новый объект Array myArr без аргументов и с первоначальной длиной равной 0:
package {
    import flash.display.Sprite;

    public class ArrayExample extends Sprite {
        public function ArrayExample() {
            var myArr:Array = new Array();
            trace(myArr.length); // 0
        }
    }
}