패키지 | 최상위 레벨 |
클래스 | public dynamic class Array |
상속 | Array Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[0]
이고 두 번째 요소는 [1]
입니다. Array 객체를 만들려면 new Array()
생성자를 사용합니다. Array()
를 함수로 호출할 수도 있습니다. 또한 array access([]
) 연산자를 사용하여 배열을 초기화하거나 배열 요소에 액세스할 수 있습니다.
배열 요소에는 숫자, 문자열, 객체, 다른 배열 등 다양한 데이터 유형을 저장할 수 있습니다. 인덱싱된 배열을 만든 다음 이 배열의 각 요소에 인덱싱된 다른 배열을 할당하면 다차원 배열을 만들 수 있습니다. 이러한 배열은 표 형식의 데이터를 나타내는 데 사용할 수 있으므로 다차원 배열로 간주됩니다.
배열은 성긴 배열입니다. 즉, 인덱스 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 | ||
strict equality(===)를 사용하여 배열의 항목을 검색하고 항목의 인덱스 위치를 반환합니다. | Array | ||
배열에 단일 요소를 삽입합니다. | Array | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
배열의 요소를 문자열로 변환하고, 지정된 분리 기호를 요소 사이에 삽입하고, 요소를 서로 연결한 후 결과 문자열을 반환합니다. | Array | ||
배열의 마지막 항목부터 역순으로 항목을 검색하고 strict equality(===)를 사용하여 일치하는 항목의 인덱스 위치를 반환합니다. | 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
예제 ( 예제 사용 방법 )
Bill
이 있는 names
라는 Array 객체를 만듭니다. 그런 다음 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 |
지정된 개수의 요소로 구성된 배열을 만들 수 있습니다. 매개 변수를 지정하지 않으면 0개의 요소가 포함된 배열이 만들어집니다. 요소 수를 지정하면 numElements
개의 요소가 포함된 배열이 만들어집니다.
참고: 이 클래스에는 가변적인 인수 유형을 받는 두 가지 생성자 메서드 항목이 있습니다. 생성자는 전달된 인수의 유형과 개수에 따라 각 항목에서 설명하는 대로 다르게 동작합니다. ActionScript 3.0에서는 메서드 또는 생성자 오버로드가 지원되지 않습니다.
매개 변수numElements:int (default = 0 ) — 배열에 포함된 요소의 수를 지정하는 정수입니다.
|
오류
RangeError — 인수가 0보다 크거나 같은 정수가 아닙니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
myArr
이라는 Array 객체를 만듭니다.
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"
으로 채운 다음 push()
메서드를 사용하여 배열 끝에 문자열 요소 "six"
를 추가합니다.
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 — 이 배열의 요소와 매개 변수의 요소가 차례로 포함된 배열입니다.
|
예제 ( 예제 사용 방법 )
- 숫자
1
,2
및3
이 포함된numbers
배열 - 문자
a
,b
및c
가 포함된letters
배열 concat()
메서드를 호출하여[1,2,3,a,b,c]
배열을 만드는numbersAndLetters
배열concat()
메서드를 호출하여[a,b,c,1,2,3]
배열을 만드는lettersAndNumbers
배열
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
를 반환하는 항목에 도달할 때까지 배열의 각 항목에 테스트 함수를 실행합니다. 이 메서드를 사용하면 배열의 모든 항목이 특정 숫자보다 값이 작아야 한다는 등의 조건에 맞는지 확인할 수 있습니다.
이 메서드에서 첫 번째 매개 변수인 callback
이 메서드 클로저인 경우 두 번째 매개 변수인 thisObject
는 null
이어야 합니다. me
라는 동영상 클립에 함수를 만드는 경우를 가정해 봅니다.
function myFunction(obj:Object):void { //your code here }
그런 다음 myArray
라는 배열에 every()
메서드를 사용한다고 가정해 봅니다.
myArray.every(myFunction, me);
myFunction
은 me
에서 재정의할 수 없는 Timeline 클래스의 멤버이므로 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
를 반환하는 항목은 새 배열에 포함되지 않습니다.
이 메서드에서 첫 번째 매개 변수인 callback
이 메서드 클로저인 경우 두 번째 매개 변수인 thisObject
는 null
이어야 합니다. me
라는 동영상 클립에 함수를 만드는 경우를 가정해 봅니다.
function myFunction(obj:Object):void { //your code here }
그런 다음 myArray
라는 배열에 filter()
메서드를 사용한다고 가정해 봅니다.
myArray.filter(myFunction, me);
myFunction
은 me
에서 재정의할 수 없는 Timeline 클래스의 멤버이므로 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 |
배열의 각 항목에 함수를 실행합니다.
이 메서드에서 첫 번째 매개 변수인 callback
이 메서드 클로저인 경우 두 번째 매개 변수인 thisObject
는 null
이어야 합니다. me
라는 동영상 클립에 함수를 만드는 경우를 가정해 봅니다.
function myFunction(obj:Object):void { //your code here }
그런 다음 myArray
라는 배열에 forEach()
메서드를 사용한다고 가정해 봅니다.
myArray.forEach(myFunction, me);
myFunction
은 me
에서 재정의할 수 없는 Timeline 클래스의 멤버이므로 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 로 사용할 객체입니다.
|
예제 ( 예제 사용 방법 )
traceEmployee()
함수에서 trace()
문을 실행합니다.
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 + ")"); } } }
traceEmployee()
함수에서 trace()
문을 실행합니다.
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 |
strict equality(===
)를 사용하여 배열의 항목을 검색하고 항목의 인덱스 위치를 반환합니다.
매개 변수
searchElement:* — 배열에서 찾을 항목입니다.
| |
fromIndex:int (default = 0 ) — 배열에서 항목 검색을 시작할 위치입니다.
|
int — 배열에서 항목의 인덱스 위치(0부터 시작)입니다. 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 | () | 메서드 |
join | () | 메서드 |
AS3 function join(sep:*):String
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
배열의 요소를 문자열로 변환하고, 지정된 분리 기호를 요소 사이에 삽입하고, 요소를 서로 연결한 후 결과 문자열을 반환합니다. 중첩 배열은 항상 join()
메서드에 전달된 분리 기호가 아닌 쉼표(,)로 구분됩니다.
매개 변수
sep:* (default = NaN ) — 반환된 문자열에서 배열 요소를 구분하는 문자 또는 문자열입니다. 이 매개 변수를 생략하면 쉼표가 기본 분리 기호로 사용됩니다.
|
String — 문자열로 변환한 배열 요소를 지정된 매개 변수로 구분하여 구성한 문자열입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
one
, two
및 three
요소가 있는 myArr
이라는 Array 객체를 만들고 join()
메서드를 사용하여 one and two and three
가 들어 있는 문자열을 만듭니다.
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
라는 Array 객체를 만든 다음 (888) 867-5309
가 들어 있는 문자열을 만듭니다. 그런 다음 for
루프를 사용하여 specialChars
에 나열된 각 유형의 특수 문자를 제거합니다. 이렇게 하면 전화 번호에서 나머지 888675309
만 들어 있는 문자열(myStr
)이 만들어집니다. 이때 +
등의 기타 문자를 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 |
배열의 마지막 항목부터 역순으로 항목을 검색하고 strict equality(===
)를 사용하여 일치하는 항목의 인덱스 위치를 반환합니다.
매개 변수
searchElement:* — 배열에서 찾을 항목입니다.
| |
fromIndex:int (default = 0x7fffffff ) — 배열에서 항목 검색을 시작할 위치입니다. 기본값은 인덱스에 허용된 최대값입니다. fromIndex 를 지정하지 않으면 배열의 마지막 항목에서 검색이 시작됩니다.
|
int — 배열에서 항목의 인덱스 위치(0부터 시작)입니다. 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 |
배열의 각 항목에 함수를 실행하고 원래 배열의 각 항목에 대한 함수 결과에 해당하는 항목으로 구성된 새 배열을 만듭니다.
이 메서드에서 첫 번째 매개 변수인 callback
이 메서드 클로저인 경우 두 번째 매개 변수인 thisObject
는 null
이어야 합니다. me
라는 동영상 클립에 함수를 만드는 경우를 가정해 봅니다.
function myFunction(obj:Object):void { //your code here }
그런 다음 myArray
라는 배열에 map()
메서드를 사용한다고 가정해 봅니다.
myArray.map(myFunction, me);
myFunction
은 me
에서 재정의할 수 없는 Timeline 클래스의 멤버이므로 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 요소
예제 ( 예제 사용 방법 )
a
, b
및 c
요소가 있는 letters
라는 Array 객체를 만듭니다. 그런 다음 pop()
메서드로 마지막 요소(c
)를 배열에서 제거하여 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
라는 빈 Array 객체를 만든 다음 push()
메서드를 사용하여 a
, b
및 c
요소로 배열을 채웁니다.
var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c
letters
라는 Array 객체를 만듭니다. 처음에는 a
요소로 배열을 채웁니다. 그런 다음 push()
메서드를 한 번 사용하여 배열 끝에 b
및 c
요소를 추가합니다. 그 결과 배열 요소는 세 개가 됩니다.
var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3
removeAt | () | 메서드 |
reverse | () | 메서드 |
AS3 function reverse():Array
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
배열의 순서를 뒤집습니다.
반환값Array — 새 배열입니다.
|
예제 ( 예제 사용 방법 )
a
, b
및 c
요소가 있는 letters
라는 Array 객체를 만듭니다. 그런 다음 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 요소
예제 ( 예제 사용 방법 )
a
, b
및 c
요소가 있는 letters
라는 Array 객체를 만듭니다. 그런 다음 shift()
메서드를 사용하여 letters
에서 첫 번째 요소(a
)를 제거하고 문자열 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 — 원본 배열의 특정 범위에 있는 요소로 구성된 배열입니다.
|
예제 ( 예제 사용 방법 )
[a,b,c,d,e,f]
요소가 있는 letters
라는 Array 객체를 만듭니다. 그럼 다음 someLetters
라는 배열을 만듭니다. 이때 요소 1(b
)부터 요소 3(d
)에 slice()
메서드를 호출하므로 배열에는 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
[a,b,c,d,e,f]
요소가 있는 letters
라는 Array 객체를 만듭니다. 그런 다음 someLetters
라는 배열을 만듭니다. 이때 요소 2(c
)에 slice()
메서드를 호출하므로 배열에는 [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
[a,b,c,d,e,f]
요소가 있는 letters
라는 Array 객체를 만듭니다. 그런 다음 someLetters
라는 배열을 만듭니다. 이때 끝에서 두 번째 요소(e
)에 slice()
메서드를 호출하여 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
를 반환하는 항목에 도달할 때까지 배열의 각 항목에 테스트 함수를 실행합니다. 이 메서드를 사용하면 배열에서 특정 숫자보다 값이 작아야 한다는 등의 조건에 맞는 항목이 하나라도 있는지 확인할 수 있습니다.
이 메서드에서 첫 번째 매개 변수인 callback
이 메서드 클로저인 경우 두 번째 매개 변수인 thisObject
는 null
이어야 합니다. me
라는 동영상 클립에 함수를 만드는 경우를 가정해 봅니다.
function myFunction(obj:Object):void { //your code here }
그런 다음 myArray
라는 배열에 some()
메서드를 사용한다고 가정해 봅니다.
myArray.some(myFunction, me);
myFunction
은 me
에서 재정의할 수 없는 Timeline 클래스의 멤버이므로 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 앞에 옵니다.
- 정렬 순서에 따라 배열이 수정됩니다. 정렬 필드가 동일한 여러 요소는 정렬된 배열에 특정 순서 없이 연속적으로 배치됩니다.
- 모든 요소는 데이터 유형에 관계없이 문자열로 취급되어 정렬됩니다. 따라서 "1"의 문자열 값이 "9"의 문자열 값보다 낮으므로 100이 99 앞에 옵니다.
기본 설정과 다른 설정을 사용하여 배열을 정렬하려면 ...args
매개 변수 설명의 sortOptions
부분에 설명된 정렬 옵션 중 하나를 사용하거나 정렬을 수행할 사용자 정의 함수를 직접 만듭니다. 사용자 정의 함수를 만드는 경우 sort()
메서드를 호출하고 사용자 정의 함수의 이름을 첫 번째 인수(compareFunction
)로 사용합니다.
매개 변수
... args — 정렬 비헤이비어를 결정하는 비교 함수 및 하나 이상의 값을 지정하는 인수입니다.
이 메서드에서는
|
Array — 반환 값은 다음 목록에 설명된 것처럼 인수 전달 여부에 따라 다릅니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
[spinach, green pepper, cilantro, onion, avocado]
요소가 있는 vegetables
라는 Array 객체를 만듭니다. 그런 다음 매개 변수를 사용하지 않고 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
[spinach, green pepper, Cilantro, Onion, and Avocado]
요소가 있는 vegetables
라는 Array 객체를 만듭니다. 그런 다음 처음에는 매개 변수를 사용하지 않고 sort()
메서드를 호출하여 배열을 정렬합니다. 그러면 결과는 [Avocado,Cilantro,Onion,green pepper,spinach]
가 됩니다. 그런 다음 매개 변수로 CASEINSENSITIVE
상수를 사용하여 vegetables
에 sort()
를 다시 호출합니다. 결과 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
라는 빈 Array 객체를 만든 후 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; } }
[3,5,100,34,10]
요소가 있는 numbers
라는 Array 객체를 만듭니다. 이때 매개 변수 없이 sort()
를 호출하면 항목이 알파벳 순서에 따라 정렬되므로 [10,100,3,34,5]
라는 원하지 않는 결과가 나타납니다. 숫자 값을 올바르게 정렬하려면 sort()
메서드에 NUMERIC
상수를 전달하여 numbers
를 [3,5,10,34,100]
으로 정렬해야 합니다.
참고: sort()
함수의 기본 비헤이비어는 각 엔터티를 문자열로 처리하는 것입니다. Array.NUMERIC
인수를 사용할 경우 Flash 런타임에서는 정렬을 위해 숫자가 아닌 값을 정수로 변환하려고 합니다. 변환하지 못할 경우 런타임에서 오류가 발생합니다. 예를 들어 런타임에서 문자열 값 "6"
은 정수로 변환할 수 있지만 문자열 값 "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
매개 변수를 전달하는 경우 첫 번째 필드는 1차 정렬 필드를, 두 번째 필드는 다음 정렬 필드를 나타냅니다. Flash에서는 유니코드 값에 따라 요소가 정렬됩니다. ASCII는 유니코드의 부분 집합입니다. 비교하는 요소 중 하나에 fieldName
매개 변수에 지정된 필드가 없으면 필드가 undefined
로 설정된 것으로 간주되며 요소가 정렬된 배열에 특정 순서 없이 연속적으로 배치됩니다.
기본적으로 Array
. sortOn()
는 다음과 같이 작동합니다.
- 정렬은 대/소문자를 구분합니다. 즉, Z가 a 앞에 옵니다.
- 정렬은 오름차순입니다. 즉, a가 b 앞에 옵니다.
- 정렬 순서에 따라 배열이 수정됩니다. 정렬 필드가 동일한 여러 요소는 정렬된 배열에 특정 순서 없이 연속적으로 배치됩니다.
- 숫자 필드는 문자열인 것처럼 정렬됩니다. 따라서 "1"은 "9"보다 낮은 문자열 값이므로 100이 99 앞에 옵니다.
Flash Player 7에 추가된 options
매개 변수를 사용하여 기본 정렬 비헤이비어를 재정의할 수 있습니다. 필드가 하나뿐인 배열과 같은 간단한 배열을 정렬하거나 options
매개 변수로 지원되지 않는 정렬 순서를 지정하려면 Array.sort()
를 사용합니다.
여러 개의 플래그를 전달하려면 각각을 bitwise OR(|
) 연산자로 구분합니다.
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
Flash Player 8에는 둘 이상의 필드를 기준으로 정렬할 때 각각의 필드에 각기 다른 정렬 옵션을 지정할 수 있는 기능이 새로 추가되었습니다. Flash Player 8 이상 버전에서는 각 정렬 옵션이 fieldName
매개 변수의 정렬 필드에 해당하는 정렬 옵션 배열을 options
매개 변수에 사용할 수 있습니다. 다음 예제에서는 1차 정렬 필드 a
를 내림차순으로, 2차 정렬 필드 b
를 숫자 정렬로, 3차 정렬 필드 c
를 대/소문자를 구분하여 정렬합니다.
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
참고: fieldName
과 options
배열은 요소 수가 같아야 합니다. 그렇지 않으면 options
배열이 무시됩니다. 또한 Array.UNIQUESORT
및 Array.RETURNINDEXEDARRAY
옵션은 배열의 첫 번째 요소로만 사용할 수 있습니다. 그렇지 않으면 옵션이 무시됩니다.
매개 변수
fieldName:Object — 정렬 값으로 사용할 필드를 식별하는 문자열 또는 1차 정렬 필드를 나타내는 첫 번째 요소, 2차 정렬 필드를 나타내는 두 번째 요소 등으로 구성된 배열입니다.
| |
options:Object (default = null ) — bitwise OR (|) 로 구분된 하나 이상의 숫자 또는 정의된 상수의 이름으로, 정렬 비헤이비어를 변경합니다. options 매개 변수에 사용할 수 있는 값은 다음과 같습니다.
플래그를 숫자 형식(예: 2)이 아닌 문자열 형식(예: |
Array — 반환 값은 매개 변수 전달 여부에 따라 다릅니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
vegetables
라는 빈 Array 객체를 만든 후 push()
를 다섯 번 호출하여 배열을 채웁니다. push()
를 호출할 때마다 Vegetable()
생성자를 호출하여 새 Vegetable
객체를 만듭니다. 이 생성자에는 String 객체(name
) 및 Number 객체(price
)가 전달됩니다. 표시된 값을 사용하여 push()
를 다섯 번 호출하면 [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
와 같은 배열이 만들어집니다. 그런 다음 name
매개 변수와 함께 sortOn()
메서드를 사용하여 [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
와 같은 배열을 만듭니다. 그런 다음 price 매개 변수와 NUMERIC 및 DESCENDING 상수를 사용하여 sortOn()
메서드를 다시 호출하여 숫자를 기준으로 내림차순으로 정렬된 배열을 만듭니다. 그 결과는 [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
라는 빈 Array 객체를 만든 후 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
라는 빈 Array 객체를 만든 후 push()
를 네 번 호출하여 배열을 채웁니다. push()
를 호출할 때마다 User()
생성자를 통해 User 객체가 만들어지고 name
문자열과 age
uint가 사용자로 추가됩니다. 결과 배열은 [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 유형일 경우 배열이 그대로 유지되고 단일 요소로 삽입됩니다. 예를 들어 길이 3의 기존 배열을 길이 3의 또 다른 배열과 연결할 경우 결과 배열은 네 개의 요소만 갖게 됩니다. 그러나 요소 중 하나는 길이 3의 배열이 됩니다.
|
Array — 원본 배열에서 제거된 요소가 들어 있는 배열입니다.
|
예제 ( 예제 사용 방법 )
[spinach, green pepper, cilantro, onion, avocado]
요소가 있는 vegetables
라는 Array 객체를 만듭니다. 그런 다음 매개 변수 2와 2를 사용하여 splice()
메서드를 호출합니다. 이렇게 하면 spliced
배열에 cilantro
및 onion
이 할당됩니다. 이제 vegetables
배열에는 [spinach,green pepper,avocado]
가 들어 있습니다. 이때 매개 변수 1과 0 및 spliced
배열을 사용하여 splice()
메서드를 다시 호출하면 vegetables
에 [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, 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 | () | 메서드 |
toString | () | 메서드 |
public function toString():String
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
지정된 배열의 요소를 나타내는 문자열을 반환합니다. 인덱스 0부터 시작하여 최상위 인덱스로 끝나는 배열의 모든 요소가 연결된 문자열로 변환되고 쉼표로 구분됩니다. 사용자 정의 분리 기호를 지정하려면 Array.join()
메서드를 사용합니다.
String — 배열 요소의 문자열입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
vegnums
변수에 저장합니다.
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
라는 빈 Array 객체를 만듭니다. push()
메서드를 사용하여 문자열 Bill
및 Jeff
를 추가한 다음 unshift()
메서드를 두 번 호출하여 문자열 Alfred
및 Kyle
을 names
의 맨 앞에 추가합니다.
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 클래스에 대/소문자를 구분하지 않는 정렬 방식을 지정합니다. sort()
또는 sortOn()
메서드의 options
매개 변수에 이 상수를 사용할 수 있습니다.
이 상수의 값은 1입니다.
관련 API 요소
DESCENDING | 상수 |
public static const DESCENDING:uint = 2
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Array 클래스에 내림차순 정렬 방식을 지정합니다. sort()
또는 sortOn()
메서드의 options
매개 변수에 이 상수를 사용할 수 있습니다.
이 상수의 값은 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 |
정렬을 통해 배열 인덱스로 구성된 배열을 반환하도록 지정합니다. sort()
또는 sortOn()
메서드의 options
매개 변수에 이 상수를 사용하면 원본 배열을 그대로 유지한 채 배열 요소에 여러 방식으로 액세스할 수 있습니다.
이 상수의 값은 8입니다.
관련 API 요소
UNIQUESORT | 상수 |
public static const UNIQUESORT:uint = 4
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Array 클래스 정렬 방식에 고유 정렬 요구 사항을 지정합니다. sort()
또는 sortOn()
메서드의 options
매개 변수에 이 상수를 사용할 수 있습니다. 고유 정렬 옵션을 지정한 경우 정렬 대상 중 두 요소 또는 필드의 값이 같으면 정렬이 중단됩니다.
이 상수의 값은 4입니다.
관련 API 요소
myArr
이라는 새 Array 객체를 만듭니다.
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, 03:17 PM Z