Пакет | Верхний уровень |
Класс | public dynamic class Array |
Наследование | Array Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[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 можно расширить, переопределив или добавив методы. Однако этот подкласс необходимо сделать dynamic
, чтобы не утратить возможность сохранения данных в массиве.
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
length : uint
Неотрицательное целое число, которым задается количество элементов в массиве. | Array |
Метод | Определено | ||
---|---|---|---|
Позволяет создавать массив, содержащий заданные элементы. | Array | ||
Позволяет создавать массивы с заданным числом элементов. | Array | ||
Указанные в параметрах элементы сцепляются с элементами в массиве, и создается новый массив. | Array | ||
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение false для заданной функции. | Array | ||
Выполняет тестовую функцию для каждого элемента массива и формирует новый массив из всех элементов, возвращающих значение true для заданной функции. | Array | ||
Выполняет функцию для каждого элемента массива. | Array | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Ищет элемент в массиве с использованием строгого равенства (===) и возвращает позицию элемента в индексе. | Array | ||
Вставьте один элемент в массив. | Array | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Преобразует элементы массива в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку. | Array | ||
Ищет элемент в массиве в обратном порядке начиная с последнего элемента с использованием строгого равенства (===), затем возвращает позицию в индексе для подходящего элемента. | Array | ||
Выполняет функцию для каждого элемента массива и формирует новый массив из элементов, соответствующих результатам функции для каждого элемента исходного массива. | Array | ||
Удаляет последний элемент из массива и возвращает значение этого элемента. | Array | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Добавляет один или несколько элементов в конец массива и возвращает новую длину массива. | Array | ||
Удалите один элемент из массива. | Array | ||
Преобразует массив в обратный массив. | Array | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Удаляет первый элемент из массива и возвращает этот элемент. | Array | ||
Возвращает новый массив, состоящий из диапазона элементов исходного массива, не модифицируя исходный массив. | Array | ||
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение true. | Array | ||
Сортирует элементы в массиве. | Array | ||
Сортирует элементы в массиве по одному или нескольким полям массива. | Array | ||
Добавляет элементы в массив и удаляет элементы из массива. | Array | ||
Возвращает строку, представляющую элементы в заданном массиве. | Array | ||
Возвращает строку, представляющую элементы в заданном массиве. | Array | ||
Добавляет один или несколько элементов в начало массива и возвращает новую длину массива. | Array | ||
Возвращает элементарное значение заданного объекта. | 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, Flash Lite 4 |
Неотрицательное целое число, которым задается количество элементов в массиве. Это свойство автоматически обновляется, когда в массив добавляются новые элементы. Когда элементу массива присваивается свойство (например, my_array[index] = value
), если index
является числом, а index+1
превышает значение свойства length
, свойство length
обновляется, принимая значение index+1
.
Примечание. Если свойству length
присваивается значение, которое меньше существующей длины, массив усекается.
Реализация
public function get length():uint
public function set length(value:uint):void
Пример ( Использование этого примера )
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(... values)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Позволяет создавать массив, содержащий заданные элементы. Можно указывать значения любого типа. Первый элемент в массиве всегда имеет индекс (или позицию) 0.
Примечание. В этом классе показаны две записи конструктора, поскольку конструктор поддерживает разные типы аргументов. Режим работы конструктора меняется в зависимости от типа и количества переданных аргументов (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.
Параметры... values — Список из одного или нескольких произвольных значений, разделенных запятыми.
Примечание. Если в конструктор Array передается единичный числовой параметр, предполагается, что указано свойство массива |
Выдает
RangeError — Аргумент — это число, которое не является целым числом большим или равным 0.
|
Связанные элементы API
Пример ( Использование этого примера )
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 } } }
Array | () | Конструктор |
public function Array(numElements:int = 0)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Позволяет создавать массивы с заданным числом элементов. Если не указать никаких параметров, создается массив с нулевым количеством элементов. Если указан ряд элементов, создается массив с количеством элементов numElements
.
Примечание. В этом классе показаны две записи метода конструктора, поскольку конструктор поддерживает разные типы аргументов. Режим работы конструктора меняется в зависимости от типа и количества переданных аргументов (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.
ПараметрыnumElements:int (default = 0 ) — Целое число, указывающее количество элементов в массиве.
|
Выдает
RangeError — Аргумент — это число, которое не является целым числом большим или равным 0.
|
Связанные элементы API
Пример ( Использование этого примера )
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 } } }
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 } } }
concat | () | метод |
AS3 function concat(... args):Array
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Указанные в параметрах элементы сцепляются с элементами в массиве, и создается новый массив. Если параметры задают массив, элементы этого массива сцепляются. Если параметры не передаются, новый массив дублирует исходный массив (как поверхностный клон).
Параметры
... args — Значение любого типа данных (например, числа, элементы или строки), которые необходимо сцепить в новом массиве.
|
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, Flash Lite 4 |
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение false
для заданной функции. Этот метод используется для того, чтобы определить, все ли элементы массива соответствуют критерию (например, их значения должны быть меньше определенного числа).
Второй параметр этого метода, thisObject
, должен иметь значение null
, если первый параметр, callback
, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me
:
function myFunction(obj:Object):void { //your code here }
Допустим, что используется метод every()
по отношению к массиву myArray
:
myArray.every(myFunction, me);
Поскольку myFunction
принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me
, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:
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 .
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Выполняет тестовую функцию для каждого элемента массива и формирует новый массив из всех элементов, возвращающих значение true
для заданной функции. Если элемент возвращает значение false
, он не включается в новый массив.
Второй параметр этого метода, thisObject
, должен иметь значение null
, если первый параметр, callback
, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me
:
function myFunction(obj:Object):void { //your code here }
Допустим, что используется метод filter()
по отношению к массиву с именем myArray
:
myArray.filter(myFunction, me);
Поскольку myFunction
принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me
, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:
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 .
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Выполняет функцию для каждого элемента массива.
Второй параметр этого метода, thisObject
, должен иметь значение null
, если первый параметр, callback
, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me
:
function myFunction(obj:Object):void { //your code here }
Допустим, что используется метод forEach()
по отношению к массиву с именем myArray
:
myArray.forEach(myFunction, me);
Поскольку myFunction
принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me
, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:
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, Flash Lite 4 |
Ищет элемент в массиве с использованием строгого равенства (===)
и возвращает позицию элемента в индексе.
Параметры
searchElement:* — Элемент, который требуется найти в массиве.
| |
fromIndex:int (default = 0 ) — Место в массиве, в которого начинается поиск элемента.
|
int — Позиция индекса, начинающегося с нуля, для элемента массива. Если аргумент searchElement не найден, возвращается значение «-1».
|
Связанные элементы API
Пример ( Использование этого примера )
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 } } }
insertAt | () | метод |
AS3 function insertAt(index:int, element:*):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 19, AIR 19 |
Вставьте один элемент в массив. Этот метод изменяет массив, не создавая копии.
Параметры
index:int — Целое число, указывающее позицию в массиве, куда необходимо вставить элемент. Для указания позиции относительно конца массива можно использовать отрицательное число (например, -1 — это последний элемент массива).
| |
element:* |
join | () | метод |
AS3 function join(sep:*):String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Преобразует элементы массива в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку. Вложенный массив всегда разделяется запятой (,), а не разделителем, переданным методу join()
.
Параметры
sep:* (default = NaN ) — Символ или строка, которые разделяют элементы массива в возвращенной строке. Если этот параметр пропустить, в качестве разделителя по умолчанию используется запятая.
|
String — Строка, состоящая из элементов массива, преобразованных в строки и разделенных указанным параметром.
|
Связанные элементы API
Пример ( Использование этого примера )
myArr
с элементами one
, two
, three
и затем строку, содержащую one and two and three
, с помощью метода 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
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, Flash Lite 4 |
Ищет элемент в массиве в обратном порядке начиная с последнего элемента с использованием строгого равенства (===
), затем возвращает позицию в индексе для подходящего элемента.
Параметры
searchElement:* — Элемент, который требуется найти в массиве.
| |
fromIndex:int (default = 0x7fffffff ) — Место в массиве, в которого начинается поиск элемента. Значение по умолчанию — максимально допустимое значение индекса. Если параметр fromIndex не указан, поиск начинается с последнего элемента массива.
|
int — Позиция индекса, начинающегося с нуля, для элемента массива. Если аргумент searchElement не найден, возвращается значение «-1».
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Выполняет функцию для каждого элемента массива и формирует новый массив из элементов, соответствующих результатам функции для каждого элемента исходного массива.
Второй параметр этого метода, thisObject
, должен иметь значение null
, если первый параметр, callback
, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me
:
function myFunction(obj:Object):void { //your code here }
Допустим, что используется метод map()
по отношению к массиву с именем myArray
:
myArray.map(myFunction, me);
Поскольку myFunction
принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me
, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.map(myFunction, me);
Параметры
callback:Function — Функция, выполняемая с каждым элементом массива. Эта функция может содержать простую команду (например, изменение регистра строкового массива) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
function callback(item:*, index:int, array:Array):String; | |
thisObject:* (default = null ) — Объект, используемый для этой функции в качестве this .
|
Array — Новый массив, который содержит результаты функции, выполняемой по отношению к каждому элементу исходного массива.
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Удаляет последний элемент из массива и возвращает значение этого элемента.
Возвращает* — Значение последнего элемента (любого типа данных) в указанном массиве.
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Добавляет один или несколько элементов в конец массива и возвращает новую длину массива.
Параметры
... args — Одно или несколько значений, добавляемых в массив.
|
uint — Целое число, выражающее длину нового массива.
|
Связанные элементы API
Пример ( Использование этого примера )
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
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
removeAt | () | метод |
AS3 function removeAt(index:int):*
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 19, AIR 19 |
Удалите один элемент из массива. Этот метод изменяет массив, не создавая копии.
Параметры
index:int — Целое число, указывающее индекс удаляемого элемента в массиве. Для указания позиции относительно конца массива можно использовать отрицательное число (например, -1 — это последний элемент массива).
|
* — Элемент, который был удален из исходного массива.
|
reverse | () | метод |
AS3 function reverse():Array
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Преобразует массив в обратный массив.
Возвращает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, Flash Lite 4 |
Удаляет первый элемент из массива и возвращает этот элемент. Оставшиеся элементы массива перемещаются с исходной позицию «i» на позицию «i-1».
Возвращает* — Первый элемент (любого типа данных) в массиве.
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Возвращает новый массив, состоящий из диапазона элементов исходного массива, не модифицируя исходный массив. Возвращенный массив включает элемент startIndex
и все элементы вплоть до него, исключая элемент endIndex
.
Если параметры не передаются, новый массив дублирует исходный массив (как поверхностный клон).
Параметры
startIndex:int (default = 0 ) — Число, указывающее на индекс начальной позиции среза. Если startIndex — отрицательное число, начальной позицией становится конец массива, последнему элементу которого присваивается позиция «-1».
| |
endIndex:int (default = 16777215 ) — Число, указывающее на индекс конечной позиции среза. Если этот параметр пропустить, срез включает все элементы от начальной позиции до конца массива. Если endIndex — отрицательное число, конечная позиция указывается с конца массива, последнему элементу которого присваивается позиция «-1».
|
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
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
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, Flash Lite 4 |
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение true
. Этот метод используется для того, чтобы определить, все ли элементы массива соответствуют критерию (например, их значения должны быть меньше определенного числа).
Второй параметр этого метода, thisObject
, должен иметь значение null
, если первый параметр, callback
, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me
:
function myFunction(obj:Object):void { //your code here }
Допустим, что используется метод some()
по отношению к массиву с именем myArray
:
myArray.some(myFunction, me);
Поскольку myFunction
принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me
, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:
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 .
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Сортирует элементы в массиве. Этот метод применяется для сортировки по значениям Юникода. (ASCII — это подмножество Юникода.)
По умолчанию Array
. sort()
действует следующим образом:
- Сортировка зависит от регистра (Z предшествует a).
- Сортировка выполняется в восходящем порядке (a предшествует b).
- Массив изменяется, отражая порядок сортировки; несколько элементов, имеющих идентичные поля сортировки последовательно размещаются в отсортированном массиве без определенного порядка.
- Все элементы независимо от типа данных сортируются так, как если бы это были строки. Число 100 предшествует числу 99, поскольку «1» — это строковое значение, которое меньше «9».
Чтобы выполнить сортировку массива, используя настройки, которые отличаются от настроек по умолчанию, можно либо воспользоваться одной из возможностей сортировки, описанной в разделе sortOptions
описания параметра ...args
, либо создать собственную пользовательскую функцию сортировки. При создании пользовательской функции вызывается метод sort()
, а имя пользовательской функции используется в качестве первого аргумента (compareFunction
)
Параметры
... args — Аргументы, указывающие на функцию сравнения и одно или несколько значений, определяющих режим сортировки.
В этом методе используется синтаксис и порядок аргументов
|
Array — Возвращаемое значение зависит от того, передаются ли аргументы (см. список):
|
Связанные элементы API
Пример ( Использование этого примера )
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
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
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; } }
numbers
с элементами [3,5,100,34,10]
. Вызов метода sort()
без параметров приводит к сортировке в алфавитном порядке. При этом появляется нежелательный результат: [10,100,3,34,5]
. Чтобы правильно отсортировать числовые значения, необходимо передать константу NUMERIC
методу sort()
, который сортирует numbers
следующим образом: [3,5,10,34,100]
.
Примечание. Режим функции sort()
по умолчанию состоит в том, чтобы обрабатывать каждую сущность как строку. При использовании аргумента Array.NUMERIC
во время выполнения Flash пытается преобразовать любые нечисловые значения в целые числа с целью сортировки. Если при этом происходит ошибка, она выдается во время выполнения. Например, время выполнения может успешно преобразовать значение String "6"
к целому числу, но создаст ошибку, если встретит значение String "six"
.
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, Flash Lite 4 |
Сортирует элементы в массиве по одному или нескольким полям массива. Массив должен обладать следующими характеристиками:
- Массив является индексированным, а не массивом ассоциативных элементов.
- Каждый элемент массива содержит объект с одним или несколькими свойствами.
- Все объекты имеют не менее одного общего свойства, значения которого можно применять для сортировки массива. Такое свойство называется полем.
При указании нескольких параметров fieldName
первое поле относится к первичному полю сортировки, второе — к вторичному полю сортировки и т.д. Сортировка в Flash выполняется по значениям Юникода. (ASCII — это подмножество Юникода.) Если любой из сравниваемых элементов не содержит поле, указанное в параметре fieldName
, предполагается, что ему присвоено значение undefined
, а элементы последовательно расположены в отсортированном массиве без определенного порядка.
По умолчанию Array
. sortOn()
действует следующим образом:
- Сортировка зависит от регистра (Z предшествует a).
- Сортировка выполняется в восходящем порядке (a предшествует b).
- Массив изменяется, отражая порядок сортировки; несколько элементов, имеющих идентичные поля сортировки последовательно размещаются в отсортированном массиве без определенного порядка.
- Числовые поля сортируются так, как если бы они были строками. Число 100 предшествует числу 99, поскольку 1 — это строковое значение, которое меньше 9.
В 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 ) — Одно или несколько чисел или имен определенных констант, разделенные bitwise OR (|) и управляющие режимом сортировки. Параметр options может принимать следующие значения:
Подсказки для кодов включаются, если используется строковый формат флага (например, |
Array — Возвращаемое значение зависит от наличия переданных параметров:
|
Связанные элементы API
Пример ( Использование этого примера )
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; } }
records
, который затем заполняется путем трех вызовов метода push()
. При каждом вызове метода push()
строки name
, city
и zip
добавляются в объект 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
users
, который затем заполняется путем четырех вызовов метода push()
. Каждый раз при вызове метода push()
создается объект User с помощью конструктора User()
. В число пользователей добавляются строка name
и uint age
. В результате получается набор массивов [Bob:3,barb:35,abcd:3,catchy:4]
.
Затем массив сортируется следующими способами:
- Только по имени, создавая массив
[Bob:3,abcd:3,barb:35,catchy:4]
- По имени и с константой
CASEINSENSITIVE
, создавая массив[abcd:3,barb:35,Bob:3,catchy:4]
- По имени и с константами
CASEINSENSITIVE
иDESCENDING
, создавая массив[catchy:4,Bob:3,barb:35,abcd:3]
- Только по возрасту, создавая массив
[abcd:3,Bob:3,barb:35,catchy:4]
- По возрасту и с константой
NUMERIC
, создавая массив[Bob:3,abcd:3,catchy:4,barb:35]
- По возрасту и с константами
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, Flash Lite 4 |
Добавляет элементы в массив и удаляет элементы из массива. Этот метод изменяет массив, не создавая копии.
Примечание. Для переопределения этого метода в подклассе 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
массиву со spliced
. Массив vegetables
содержит при этом элементы [spinach,green pepper,avocado]
. Вторично вызывается метод splice()
с параметрами 1, 0, и массив со spliced
присваивает [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, Flash Lite 4 |
Возвращает строку, представляющую элементы в заданном массиве. Каждый элемент в массиве, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. В рамках ActionScript 3.0 этот метод возвращает то же значение, что и метод Array.toString()
.
String — Строка с элементами массива.
|
Связанные элементы API
toString | () | метод |
public function toString():String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает строку, представляющую элементы в заданном массиве. Каждый элемент в массиве, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. Для указания пользовательского разделителя примените метод Array.join()
.
String — Строка с элементами массива.
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Добавляет один или несколько элементов в начало массива и возвращает новую длину массива. Другие элементы массива смещаются с исходных позиций (с i на i+1).
Параметры
... args — Одно или несколько чисел, элементов или переменных, вставляемых в начало массива.
|
uint — Целое число, выражающее новую длину массива.
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Задает сортировку без учета регистра для методов сортировки класса Array. Эту константу можно использовать для параметра options
в методе sort()
или sortOn()
.
Значение этой константы равно 1.
Связанные элементы API
DESCENDING | Константа |
public static const DESCENDING:uint = 2
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает сортировку по убыванию для методов сортировки класса Array. Эту константу можно использовать для параметра options
в методе sort()
или sortOn()
.
Значение этой константы равно 2.
Связанные элементы API
NUMERIC | Константа |
public static const NUMERIC:uint = 16
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает числовую сортировку (вместо сортировки по символьной строке) для методов сортировки класса Array. Включение этой константы в параметр options
приводит к тому, что методы sort()
и sortOn()
сортируют числа как числовые значения, а не как строки с числовыми значениями. Без константы NUMERIC
сортировка обрабатывает каждый элемент массива как символьную строку и выдает результаты согласно порядку Юникода.
Например, если имеется массив значений [2005, 7, 35]
, а константа NUMERIC
не включена в параметр options
, отсортированный массив выглядит как [2005, 35, 7]
, но если константа NUMERIC
включена, он выглядит следующим образом: [7, 35, 2005]
.
Эта константа применяется только к числам в массиве; она не применяется к строкам, которые содержат числовые данные (например, ["23", "5"]
).
Значение этой константы равно 16.
Связанные элементы API
RETURNINDEXEDARRAY | Константа |
public static const RETURNINDEXEDARRAY:uint = 8
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает сортировку, которая возвращает массив, состоящий из индексов массивов. Эту константу можно использовать для параметра options
в методе sort()
или sortOn()
. Таким образом, у вас есть доступ к нескольким представлениям элементов массива в то время, как исходный массив остается неизменным.
Значение этой константы равно 8.
Связанные элементы API
UNIQUESORT | Константа |
public static const UNIQUESORT:uint = 4
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает уникальное требование сортировки для методов сортировки класса Array. Эту константу можно использовать для параметра options
в методе sort()
или sortOn()
. Эта уникальная возможность прекращает сортировку, если любые два сортируемых элемента имеют одинаковые значения.
Значение этой константы равно 4.
Связанные элементы API
myArr
без аргументов и с первоначальной длиной равной 0:
package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
Tue Jun 12 2018, 11:34 AM Z