| Package | 톱 레벨 |
| Class | public dynamic class Array |
| Inheritance | Array Object |
[0], 2 번째의 엘리먼트는 [1] (이하 같이)이 됩니다. Array object를 작성하려면 ,new Array() constructor 을 사용합니다. Array() 는 함수라고 해도 호출할 수가 있습니다. 게다가 배열 액세스 ([]) 연산자를 사용하면, 배열의 초기화 또는 배열의 엘리먼트에의 액세스를 실시할 수가 있습니다.
배열 엘리먼트에는, 수치, string, object를 포함한 각종 데이터형, 한층 더 다른 배열도 보존할 수 있습니다. 다차원 배열은, 인덱스 첨부 배열을 작성해, 그 각 엘리먼트에 다른 인덱스 배열을 할당하는 것으로 작성할 수 있습니다. 이러한 배열은, 테이블내의 데이터의 표현에 사용할 수 있으므로, 다차원이다고 생각됩니다.
배열은희박한배열입니다. 즉, 인덱스 0 에 1 개의 엘리먼트, 인덱스 5 에 다른 엘리먼트가 존재해도, 이 2 개의 엘리먼트의 사이의 인덱스 위치에는 엘리먼트가 존재하지 않는 경우가 있습니다. 이러한 경우, 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 클래스의 Methods나 property는 사용할 수 없습니다.
Array 클래스를 확장해 Methods를 재정의(override) 또는 추가할 수 있습니다. 다만, 서브 클래스를 dynamic 로서 지정할 필요가 있습니다. 그렇게 하지 않는 경우, 배열에 데이터를 보관하는 기능이 없어집니다.
See also
| property | 정의 | ||
|---|---|---|---|
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
| length : uint
배열내의 엘리먼트수를 나타내는 부가 아닌 정수입니다.
| Array | ||
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| Methods | 정의 | ||
|---|---|---|---|
| Array (numElements:int = 0)
지정된 수의 엘리먼트를 가지는 배열을 작성할 수가 있습니다.
| Array | ||
| Array (... values)
지정된 엘리먼트를 가지는 배열을 작성할 수가 있습니다.
| Array | ||
| concat (... args):Array
Parameters로 지정된 엘리먼트를 배열내의 엘리먼트와 연결해, 새로운 배열을 작성합니다.
| Array | ||
| every (callback:Function , thisObject:* = null):Boolean
지정된 함수에 대해
false 를 돌려주는 아이템에 이를 때까지, 배열내의 각 아이템에 테스트 함수를 실행합니다. | Array | ||
| filter (callback:Function , thisObject:* = null):Array
배열내의 각 아이템에 대해 테스트 함수를 실행해, 지정된 함수에 대해
true 를 돌려주는 모든 아이템을 포함한 새로운 배열을 작성합니다. | Array | ||
| forEach (callback:Function , thisObject:* = null):void
배열내의 각 아이템에 대해 함수를 실행합니다.
| Array | ||
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
| indexOf (searchElement:* , fromIndex:int = 0):int
엄밀한 등가 (
===)를 사용해 배열내의 아이템을 검색해, 아이템의 인덱스 위치를 돌려줍니다. | Array | ||
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
| join (sep:* ):String
배열내의 엘리먼트를 string로 변환해, 지정된 separator를 엘리먼트간에 삽입해, 엘리먼트를 연결해, 그 결과를 string로서 돌려줍니다.
| Array | ||
| lastIndexOf (searchElement:* , fromIndex:int = 0x7fffffff):int
배열내의 아이템을, 마지막 아이템으로부터 선두로 향해 검색해, 엄밀한 등가 (
===)를 사용해, 일치한 아이템의 인덱스 위치를 돌려줍니다. | Array | ||
| map (callback:Function , thisObject:* = null):Array
배열내의 각 아이템에 대해 함수를 실행해, 원의 배열의 각 아이템에 대한 함수의 결과에 대응하는 아이템으로부터 완성되는 새로운 배열을 작성합니다.
| Array | ||
| pop ():Object
배열의 마지막 엘리먼트를 삭제해, 그 엘리먼트의 값을 돌려줍니다.
| Array | ||
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
| push (... args):uint
엘리먼트를 배열의 마지막에 추가해, 추가 후의 배열의 길이를 돌려줍니다.
| Array | ||
| reverse ():Array
배열의 줄을 반전시킵니다.
| Array | ||
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
| shift ():Object
배열의 최초의 엘리먼트를 삭제해, 그 엘리먼트를 돌려줍니다.
| Array | ||
| slice (startIndex:int = 0, endIndex:int = -1):Array
원의 배열로부터 일련의 엘리먼트를 꺼내, 새로운 배열을 돌려줍니다. 원의 배열은 변경되지 않습니다.
| Array | ||
some (callback:Function , thisObject:* = null):Boolean
true 를 돌려주는 아이템에 이를 때까지, 배열내의 각 아이템에 테스트 함수를 실행합니다. | Array | ||
| sort (... args):Array
배열내의 엘리먼트를 소트 합니다.
| Array | ||
| sortOn (fieldName:Object , options:Object = null):Array
배열내의 필드 (복수의 필드도 가능)에 근거해, 배열내의 엘리먼트를 소트 합니다.
| Array | ||
| splice (startIndex:int , deleteCount:uint , ... values):Array
배열의 엘리먼트를 추가 및 삭제합니다.
| Array | ||
| toLocaleString ():String
지정된 배열내의 엘리먼트를 나타내는 string를 돌려줍니다.
| Array | ||
| toString ():String
지정된 배열내의 엘리먼트를 나타내는 string를 돌려줍니다.
| Array | ||
| unshift (... args):uint
엘리먼트를 배열의 선두에 추가해, 배열의 새로운 길이를 돌려줍니다.
| Array | ||
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
| 정수 | 정의 | ||
|---|---|---|---|
| CASEINSENSITIVE : uint = 1 [static]
Array 클래스의 소트 Methods에 대해서, 대문자와 소문자를 구별하지 않는 소트를 지정합니다.
| Array | ||
| DESCENDING : uint = 2 [static]
Array 클래스의 소트 Methods에 대해서, 내림차순에서의 소트를 지정합니다.
| Array | ||
| NUMERIC : uint = 16 [static]
Array 클래스의 소트 Methods에 대해서, 캐릭터 string는 아니고 수치에 의한 소트를 지정합니다.
| Array | ||
| RETURNINDEXEDARRAY : uint = 8 [static]
소트 결과적으로, 배열 인덱스로 구성되는 배열을 돌려주는 것을 지정합니다.
| Array | ||
| UNIQUESORT : uint = 4 [static]
Array 클래스의 소트 Methods에 대해서, 일의성 소트 요건을 지정합니다.
| Array | ||
| length | property |
length:uint [read-write]
배열내의 엘리먼트수를 나타내는 부가 아닌 정수입니다. 이 property는, 새로운 엘리먼트가 배열에 추가되면 자동 갱신됩니다. 배열 엘리먼트에 값을 할당할 때 (my_array[index] = value 등),index 가 수치로 한편 index+1 가 length property보다 큰 경우,length property가 index+1 에 갱신됩니다.
메모 :length property에 기존의 길이보다 짧은 값을 할당했을 경우, 배열은 절약할 수 있습니다.
public function get length():uint
public function set length(value:uint ):void
Bill 를 가지는 Array object names 를 작성합니다.
다음에,push() Methods에 의해, 다른 string 엘리먼트 Kyle 를 추가합니다. 배열의 길이는,
push() 의 사용전으로는 length property로 결정되어 있도록(듯이) 엘리먼트 1 개였지만,
push() 를 호출한 후는 엘리먼트 2 개가 됩니다. 다른 string Jeff 가 추가되어
names 의 길이는 엘리먼트 3 개가 됩니다. 다음에,shift() Methods를 2 회 호출해,
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 | () | constructor |
public 함수 Array(numElements:int = 0)
지정된 수의 엘리먼트를 가지는 배열을 작성할 수가 있습니다. Parameters를 지정하지 않는 경우는, 0 개의 엘리먼트를 가지는 배열이 작성됩니다. 엘리먼트수를 지정하는 경우는,numElements 개의 엘리먼트를 가지는 배열이 작성됩니다.
메모: 이 클래스는, 2 개의 constructor Methods 항목을 나타내고 있습니다. constructor 은 다양한 타입의 인수를 받아들이기 (위해)때문에입니다. constructor 의 동작은, 각 항목으로 상세를 나타내도록(듯이), 건네받는 인수의 형태와 수에 따라서 다릅니다. ActionScript 3.0 은 Methods 또는 constructor 의 overload를 지원(support)하고 있습니다.
ParametersnumElements:int (default = 0) — 배열내의 엘리먼트수를 지정하는 정수입니다.
|
RangeError — 인수는, 0 이상의 정수가 아닌 수치입니다.
|
See also
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" 를 설정해,push() Methods를 사용해 string 엘리먼트 "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
}
}
}
| Array | () | constructor |
public 함수 Array(... values)지정된 엘리먼트를 가지는 배열을 작성할 수가 있습니다. 임의의 형태의 값을 지정할 수가 있습니다. 배열내의 최초의 엘리먼트의 인덱스 또는 위치는, 항상 0 입니다.
메모: 이 클래스는, 2 개의 constructor 항목을 나타내고 있습니다. constructor 은 다양한 타입의 인수를 받아들이기 (위해)때문에입니다. constructor 의 동작은, 각 항목으로 상세를 나타내도록(듯이), 건네받는 인수의 형태와 수에 따라서 다릅니다. ActionScript 3.0 은 Methods 또는 constructor 의 overload를 지원(support)하고 있습니다.
Parameters... values — 복수의 임의의 값으로 구성되는 칸마 단락 리스트입니다.
메모 :Array constructor 에 수치 Parameters를 1 개만 건네주었을 경우, 그 Parameters는 배열의 |
RangeError — 인수는, 0 이상의 정수가 아닌 수치입니다.
|
See also
one,two, 및 three 를 설정해,
엘리먼트를 string로 변환합니다.
package {
import flash.display.Sprite;
public class Array_Array_3 extends Sprite {
public function Array_Array_3() {
var myArr:Array = new Array("one", "two", "three");
trace(myArr.length); // 3
trace(myArr); // one, two, three
}
}
}
| concat | () | Methods |
AS3 function concat(... args):Array Parameters로 지정된 엘리먼트를 배열내의 엘리먼트와 연결해, 새로운 배열을 작성합니다. Parameters로 배열을 지정하면, 그 배열의 엘리먼트가 연결됩니다.
Parameters... args — 새로운 배열내에서 연결하는 임의의 데이터형 (수치, 엘리먼트, string등)의 값입니다. 값을 건네주지 않는 경우, 새로운 배열은 원의 배열의 복제가 됩니다.
|
Array —
이 배열의 엘리먼트의 뒤에 Parameters의 엘리먼트가 계속되는 배열입니다.
|
numbers 배열. 수치 1,2, 및 3 이 포함되어 있습니다. letters 배열. 캐릭터 a,b, 및 c 가 포함되어 있습니다. numbersAndLetters 배열. concat() Methods를 호출해, 배열 [1,2,3, a, b, c] 를 작성합니다. lettersAndNumbers 배열. concat() Methods를 호출해, 배열 [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 | () | Methods |
AS3 function every(callback:Function , thisObject:* = null):Boolean
지정된 함수에 대해 false 를 돌려주는 아이템에 이를 때까지, 배열내의 각 아이템에 테스트 함수를 실행합니다. 이 Methods를 사용해, 배열내의 모든 아이템이 있는 기준 (값이 특정의 수치보다 작은 등)을 채우고 있는지 어떤지를 판별할 수 있습니다.
이 Methods로, 2 번째의 Parameters thisObject 는, 최초의 Parameters callback 가 Methods폐포인 경우,null 가 아니면 안됩니다. 예를 들어,me 라고 하는 무비 클립내에, 어느 함수를 작성한다고 합니다.
function myFunction(){
// 여기에 코드를 기술
}
다음에,myArray 라고 하는 배열에 대해서 filter() Methods를 사용한다고 합니다.
myArray.filter(myFunction, me);
myFunction 는 Timeline 클래스의 멤버이며,me 에 의해 재정의(override) 할 수 없기 때문에, Flash Player 는 예외를 슬로우 합니다. 이 런타임 에러는, 다음과 같이 함수를 변수에 할당하는 것에 의해 회피할 수 있습니다.
var foo:Function = myFunction() {
// 여기에 코드를 기술
};
myArray.filter(foo, me);
Parameters
callback:Function — 배열내의 각 아이템에 대해 실행하는 함수입니다. 이 함수에는, 단순한 비교 (item < 20 등)나 보다 복잡한 연산을 포함할 수가 있습니다. 또, 이 함수는, 다음과 같이, 아이템의 값, 아이템의 인덱스, 및 Array object의 3 개의 인수를 사용해 불려 갑니다.
function callback(item:*, index:int, array:Array) :void; |
|
thisObject:* (default = null) — 함수의 this 로서 사용하는 object입니다.
|
Boolean —
불리언 값입니다. 지정된 함수에 대해 배열내의 모든 아이템이 true 를 돌려주는 경우는 true, 그 이외의 경우는 false 를 돌려줍니다.
|
See also
isNumeric 가 최초의 배열로 true, 2 번째의 배열로 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 | () | Methods |
AS3 function filter(callback:Function , thisObject:* = null):Array
배열내의 각 아이템에 대해 테스트 함수를 실행해, 지정된 함수에 대해 true 를 돌려주는 모든 아이템을 포함한 새로운 배열을 작성합니다. false 를 돌려주는 아이템은, 새로운 배열에는 포함할 수 없습니다.
이 Methods로, 2 번째의 Parameters thisObject 는, 최초의 Parameters callback 가 Methods폐포인 경우,null 가 아니면 안됩니다. 예를 들어,me 라고 하는 무비 클립내에, 어느 함수를 작성한다고 합니다.
function myFunction(){
// 여기에 코드를 기술
}
다음에,myArray 라고 하는 배열에 대해서 filter() Methods를 사용한다고 합니다.
myArray.filter(myFunction, me);
myFunction 는 Timeline 클래스의 멤버이며,me 에 의해 재정의(override) 할 수 없기 때문에, Flash Player 는 예외를 슬로우 합니다. 이 런타임 에러는, 다음과 같이 함수를 변수에 할당하는 것에 의해 회피할 수 있습니다.
var foo:Function = myFunction() {
// 여기에 코드를 기술
};
myArray.filter(foo, me);
Parameters
callback:Function — 배열내의 각 아이템에 대해 실행하는 함수입니다. 이 함수에는, 단순한 비교 (item < 20 등)나 보다 복잡한 연산을 포함할 수가 있습니다. 또, 이 함수는, 다음과 같이, 아이템의 값, 아이템의 인덱스, 및 Array object의 3 개의 인수를 사용해 불려 갑니다.
function callback(item:*, index:int, array:Array) :void; |
|
thisObject:* (default = null) — 함수의 this 로서 사용하는 object입니다.
|
Array —
원의 배열내의 아이템으로 true 를 돌려준 것을 모두 포함한 새로운 배열입니다.
|
See also
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 | () | Methods |
AS3 function forEach(callback:Function , thisObject:* = null):void 배열내의 각 아이템에 대해 함수를 실행합니다.
이 Methods로, 2 번째의 Parameters thisObject 는, 최초의 Parameters callback 가 Methods폐포인 경우,null 가 아니면 안됩니다. 예를 들어,me 라고 하는 무비 클립내에, 어느 함수를 작성한다고 합니다.
function myFunction(){
// 여기에 코드를 기술
}
다음에,myArray 라고 하는 배열에 대해서 filter() Methods를 사용한다고 합니다.
myArray.filter(myFunction, me);
myFunction 는 Timeline 클래스의 멤버이며,me 에 의해 재정의(override) 할 수 없기 때문에, Flash Player 는 예외를 슬로우 합니다. 이 런타임 에러는, 다음과 같이 함수를 변수에 할당하는 것에 의해 회피할 수 있습니다.
var foo:Function = myFunction() {
// 여기에 코드를 기술
};
myArray.filter(foo, me);
Parameters
callback:Function — 배열내의 각 아이템에 대해 실행하는 함수입니다. 이 함수에는, 단순한 커멘드 (trace() 명령문(statement)등)나 보다 복잡한 연산을 포함할 수가 있습니다. 또, 이 함수는, 다음과 같이, 아이템의 값, 아이템의 인덱스, 및 Array object의 3 개의 인수를 사용해 불려 갑니다.
function callback(item:*, index:int, array:Array) :void; |
|
thisObject:* (default = null) — 함수의 this 로서 사용하는 object입니다.
|
traceEmployee() 함수로, 배열내의 각 아이템에 대해 trace() 명령문(statement)를 실행하고 있습니다.
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() 명령문(statement)를 실행하고 있습니다만, 여기서 사용하는 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 | () | Methods |
AS3 function indexOf(searchElement:* , fromIndex:int = 0):int
엄밀한 등가 (===)를 사용해 배열내의 아이템을 검색해, 아이템의 인덱스 위치를 돌려줍니다.
searchElement:* — 배열내에서 검색하는 아이템입니다.
|
|
fromIndex:int (default = 0) — 아이템의 검색을 개시하는 배열내의 장소입니다.
|
int —
배열내의 아이템의 0 으로부터 시작되는 인덱스 위치입니다. searchElement 인수가 발견되지 않았던 경우, 반환값은 -1 입니다.
|
See also
package {
import flash.display.Sprite;
public class Array_indexOf extends Sprite {
public function Array_indexOf() {
var arr:Array = new Array(123,45,6789);
arr.push("123-45-6789");
arr.push("987-65-4321");
var index:int = arr.indexOf("123");
trace(index); // -1
var index2:int = arr.indexOf(123);
trace(index2); // 0
}
}
}
| join | () | Methods |
AS3 function join(sep:* ):String
배열내의 엘리먼트를 string로 변환해, 지정된 separator를 엘리먼트간에 삽입해, 엘리먼트를 연결해, 그 결과를 string로서 돌려줍니다. 네스트 된 배열은,join() Methods에게 건네지는 separator로 단락짓는 것이 아니라, 항상 칸마 (, )로 단락짓습니다.
sep:* — 돌려주어진 string내의 배열 엘리먼트를 단락짓는 캐릭터 또는 string입니다. 이 Parameters를 생략 하면, 디폴트의 separator로서 칸마가 사용됩니다.
|
String —
string에 변환된 배열의 엘리먼트로 구성되어 지정된 Parameters로 단락지어지고 있는 string입니다.
|
See also
one,two, 및 three 를 가진다
Array object myArr 를 작성합니다. 다음에,join() Methods에 의해,
one and two and three 를 포함한 string를 작성합니다.
var myArr:Array = new Array("one", "two", "three");
var myStr:String = myArr.join(" and ");
trace(myArr); // one, two, three
trace(myStr); // one and two and three
(,),-, 및 공백 캐릭터를 가지는 Array object specialChars 를 작성해,
(888) 867-5309 (을)를 포함한 string를 작성합니다.
다음에,for 루프를 사용해,specialChars 에 리스트 되고 있는 각 형의 특수 캐릭터를 삭제해,
전화번호의 숫자의 자리수만 (888675309)이 남겨진 string (myStr)를 작성합니다.
+ 등의 다른 캐릭터를 specialChars 에 추가할 수도 있으므로,
이 routine는 국제전화 번호의 형식에도 대응합니다.
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 | () | Methods |
AS3 function lastIndexOf(searchElement:* , fromIndex:int = 0x7fffffff):int
배열내의 아이템을, 마지막 아이템으로부터 선두로 향해 검색해, 엄밀한 등가 (===)를 사용해, 일치한 아이템의 인덱스 위치를 돌려줍니다.
searchElement:* — 배열내에서 검색하는 아이템입니다.
|
|
fromIndex:int (default = 0x7fffffff) — 아이템의 검색을 개시하는 배열내의 장소입니다. 디폴트는, 인덱스에 허가되고 있는 최대치입니다. fromIndex 를 지정하지 않는 경우, 배열내의 마지막 아이템으로부터 검색이 개시됩니다.
|
int —
배열내의 아이템의 0 으로부터 시작되는 인덱스 위치입니다. searchElement 인수가 발견되지 않았던 경우, 반환값은 -1 입니다.
|
See also
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 | () | Methods |
AS3 function map(callback:Function , thisObject:* = null):Array 배열내의 각 아이템에 대해 함수를 실행해, 원의 배열의 각 아이템에 대한 함수의 결과에 대응하는 아이템으로부터 완성되는 새로운 배열을 작성합니다.
이 Methods로, 2 번째의 Parameters thisObject 는, 최초의 Parameters callback 가 Methods폐포인 경우,null 가 아니면 안됩니다. 예를 들어,me 라고 하는 무비 클립내에, 어느 함수를 작성한다고 합니다.
function myFunction(){
// 여기에 코드를 기술
}
다음에,myArray 라고 하는 배열에 대해서 filter() Methods를 사용한다고 합니다.
myArray.filter(myFunction, me);
myFunction 는 Timeline 클래스의 멤버이며,me 에 의해 재정의(override) 할 수 없기 때문에, Flash Player 는 예외를 슬로우 합니다. 이 런타임 에러는, 다음과 같이 함수를 변수에 할당하는 것에 의해 회피할 수 있습니다.
var foo:Function = myFunction() {
// 여기에 코드를 기술
};
myArray.filter(foo, me);
Parameters
callback:Function — 배열내의 각 아이템에 대해 실행하는 함수입니다. 이 함수에는, 단순한 커멘드 (string의 배열의 대문자 소문자의 변경등)나 보다 복잡한 연산을 포함할 수가 있습니다. 또, 이 함수는, 다음과 같이, 아이템의 값, 아이템의 인덱스, 및 Array object의 3 개의 인수를 사용해 불려 갑니다.
function callback(item:*, index:int, array:Array) :void; |
|
thisObject:* (default = null) — 함수의 this 로서 사용하는 object입니다.
|
Array —
원의 배열내의 각 아이템의 함수의 결과가 포함되는 새로운 배열입니다.
|
See also
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 | () | Methods |
AS3 function pop():Object 배열의 마지막 엘리먼트를 삭제해, 그 엘리먼트의 값을 돌려줍니다.
반환값Object —
지정한 배열의 마지막 엘리먼트 (임의의 데이터형)의 값입니다.
|
See also
a,b, 및
c 를 가지는 Array object letters 를 작성합니다. 다음에,pop() Methods에 의해, 마지막 엘리먼트 (c)를 배열로부터 삭제해,
String object 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 | () | Methods |
AS3 function push(... args):uint 엘리먼트를 배열의 마지막에 추가해, 추가 후의 배열의 길이를 돌려줍니다.
Parameters... args — 배열에 추가되는 값입니다.
|
uint —
새로운 배열의 길이를 나타내는 정수입니다.
|
See also
letters 를 작성합니다.
다음에,push() Methods에 의해, 이 배열에
엘리먼트 a,b, 및 c 를 설정합니다.
var letters:Array = new Array();
letters.push("a");
letters.push("b");
letters.push("c");
trace(letters.toString()); // a, b, c
letters 를 작성합니다.
이 object에는, 처음은 엘리먼트 a 가 설정되어 있습니다. 다음에,
다음에 push() Methods를 한 번 사용해, 엘리먼트 b 와 c 를 배열의 마지막에 추가합니다.
push 후는, 이 배열의 엘리먼트는 3 개가 됩니다.
var letters:Array = new Array("a");
var count:uint = letters.push("b", "c");
trace(letters); // a, b, c
trace(count); // 3
| reverse | () | Methods |
AS3 function reverse():Array 배열의 줄을 반전시킵니다.
반환값Array —
새로운 배열입니다.
|
a,b, 및
c 를 가지는 Array object letters 를 작성합니다. 다음에,reverse() Methods에 의해 배열 엘리먼트의 순서를 반전해,
배열 [c, b, a] 를 작성합니다.
var letters:Array = new Array("a", "b", "c");
trace(letters); // a, b, c
letters.reverse();
trace(letters); // c, b, a
| shift | () | Methods |
AS3 function shift():Object 배열의 최초의 엘리먼트를 삭제해, 그 엘리먼트를 돌려줍니다. 나머지의 배열 엘리먼트는, 원래의 위치 i 로부터 i-1 에 이동됩니다.
반환값Object —
배열내의 최초의 엘리먼트 (임의의 데이터형)입니다.
|
See also
a,b, 및
c 를 가지는 Array object letters 를 작성합니다. 다음에,shift() Methods에 의해
최초의 엘리먼트 (a)를 삭제해, 그것을 string firstLetter 에 할당합니다.
var letters:Array = new Array("a", "b", "c");
var firstLetter:String = letters.shift();
trace(letters); // b, c
trace(firstLetter); // a
| slice | () | Methods |
AS3 function slice(startIndex:int = 0, endIndex:int = -1):Array
원의 배열로부터 일련의 엘리먼트를 꺼내, 새로운 배열을 돌려줍니다. 원의 배열은 변경되지 않습니다. 돌려주어지는 배열에는,startIndex 엘리먼트로부터 endIndex 엘리먼트까지 (endIndex 엘리먼트 자체는 제외하다)의 모든 엘리먼트가 포함됩니다.
Parameters를 아무것도 건네주지 않으면 원의 배열의 복제가 작성됩니다.
ParametersstartIndex:int (default = 0) — 슬라이스의 시점의 인덱스를 나타내는 수치입니다. start 가 부의 수치의 경우, 시점은 배열의 말미로부터 개시합니다. 즉,-1 이 마지막 엘리먼트입니다.
|
|
endIndex:int (default = -1) — 슬라이스의 종점의 인덱스를 나타내는 수치입니다. 이 Parameters를 생략 하면, 슬라이스에는 배열의 최초부터 끝까지의 모든 엘리먼트가 받아들여집니다. end 가 부의 수치의 경우, 종점은 배열의 말미로부터 개시합니다. 즉,-1 이 마지막 엘리먼트입니다.
|
Array —
원의 배열로부터 꺼낸 일련의 엘리먼트로부터 완성되는 배열입니다.
|
[a, b, c, d, e, f] 를 가지는 Array object letters 를 작성합니다.
다음에, 엘리먼트 2 (c)에 대해 slice() Methods를 호출해, 배열 someLetters 를 작성합니다.
배열 someLetters 을 작성합니다.
그 결과 작성되는 배열에는, 엘리먼트 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] 를 가지는 Array object letters 를 작성합니다.
다음에, 엘리먼트 2 (c)에 대해 slice() Methods를 호출해, 배열 someLetters 를 작성합니다.
그 결과 작성되는 배열에는, 다음의 엘리먼트가 포함됩니다.
[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] 를 가지는 Array object letters 를 작성합니다.
다음에, 엘리먼트 2 (c)에 대해 slice() Methods를 호출해, 배열 someLetters 를 작성합니다.
배열 someLetters 을 작성합니다.
그 결과 작성되는 배열에는, 엘리먼트 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 | () | Methods |
AS3 function some(callback:Function , thisObject:* = null):Boolean
true 를 돌려주는 아이템에 이를 때까지, 배열내의 각 아이템에 테스트 함수를 실행합니다. 이 Methods를 사용해, 배열내의 어느 아이템도 있는 기준 (값이 특정의 수치보다 작은 등)을 채우고 있는지 어떤지를 판별할 수 있습니다.
이 Methods로, 2 번째의 Parameters thisObject 는, 최초의 Parameters callback 가 Methods폐포인 경우,null 가 아니면 안됩니다. 예를 들어,me 라고 하는 무비 클립내에, 어느 함수를 작성한다고 합니다.
function myFunction(){
// 여기에 코드를 기술
}
다음에,myArray 라고 하는 배열에 대해서 filter() Methods를 사용한다고 합니다.
myArray.filter(myFunction, me);
myFunction 는 Timeline 클래스의 멤버이며,me 에 의해 재정의(override) 할 수 없기 때문에, Flash Player 는 예외를 슬로우 합니다. 이 런타임 에러는, 다음과 같이 함수를 변수에 할당하는 것에 의해 회피할 수 있습니다.
var foo:Function = myFunction() {
// 여기에 코드를 기술
};
myArray.filter(foo, me);
Parameters
callback:Function — 배열내의 각 아이템에 대해 실행하는 함수입니다. 이 함수에는, 단순한 비교 (item < 20 등)나 보다 복잡한 연산을 포함할 수가 있습니다. 또, 이 함수는, 다음과 같이, 아이템의 값, 아이템의 인덱스, 및 Array object의 3 개의 인수를 사용해 불려 갑니다.
function callback(item:*, index:int, array:Array) :void; |
|
thisObject:* (default = null) — 함수의 this 로서 사용하는 object입니다.
|
Boolean —
불리언 값입니다. 지정된 함수에 대해 배열내의 몇개의 아이템이 true 를 돌려주는 경우는 true, 그 이외의 경우는 false 를 돌려줍니다.
|
See also
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 | () | Methods |
AS3 function sort(... args):Array 배열내의 엘리먼트를 소트 합니다. 이 Methods는, Unicode 값에 근거해 소트를 실행합니다. (ASCII 는 Unicode 의 부분집합입니다. )
디폴트에서는,Array. sort() 는 다음과 같이 동작합니다.
디폴트 설정과는 다른 설정을 사용해 배열을 소트 하는 경우는,...args Parameters 기술의 sortOptions 부분에 기술되고 있는 소트 옵션의 어느쪽이든을 사용하는지, 또는 소트 처리를 실시하는 독자적인 custom 함수를 작성할 수 있습니다. custom 함수를 작성하는 경우,sort() Methods를 호출해, custom 함수의 이름을 최초의 인수 (compareFunction)로서 사용합니다.
... args — 비교 함수를 지정하는 인수와 소트 동작을 결정하는 값입니다.
이 Methods에서는,
메모 : |
Array —
반환값은, 다음에 나타내도록(듯이), 건네받은 인수에 따라서 다릅니다.
|
See also
[spinach, green pepper, Cilantro, Onion, and Avocado]
(을)를 가지는 Array object vegetables 를 작성합니다. 다음에,sort() Methods를 사용해 배열을 소트 합니다.
Methods의 호출해에 Parameters는 사용하지 않습니다. 이 결과,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]
(을)를 가지는 Array object vegetables 를 작성합니다. 다음에,sort() Methods를 사용해 배열을 소트 합니다.
Methods를 최초로 호출할 때는 Parameters는 사용하지 않습니다. 그 결과의 배열은,
[Avocado, Cilantro, Onion, green pepper, spinach] 가 됩니다. 다음에 다시 sort() 를 vegetables 에 대해서 호출할 때는,
Parameters로서 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() 를 5 회 호출하는 것에 의해 이 배열에 값을 설정합니다. push() 를 호출할 때마다,
새로운 Vegetable object가 작성됩니다.
이 constructor 은, String (name) object와 Number (price) object를 받습니다.
다음에 나타내는 값을 사용해 push() 를 5 회 호출하는 것에 의해,
배열 [lettuce:1. 49, spinach:1. 89, asparagus:3. 99, celery:1. 29, squash:1. 44] 가 작성됩니다.
sort() Methods를 사용해 이 배열을 소트 합니다. 그 결과, 배열은 다음과 같이 됩니다.
[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() Methods를 custom ·소트 함수
(sortOnPrice)(와)과 함께 사용하고 있는 점이 다릅니다. 이 custom 함수는, 알파벳순서가 아니고 가격에 근거해 소트를 실시합니다. 이
새로운 함수 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] 을 가진다
Array object numbers 를 작성합니다. Parameters를 사용하지 않고 sort() 를 호출하면,
알파벳순서에 소트 되기 (위해)때문에,[10,100,3,34,5] 라고 하는 기대하지 않는 결과가 됩니다. 수치를 올바르게 소트 하려면 ,
sort() Methods에 정수 NUMERIC 를 건네줄 필요가 있습니다.
이 결과,numbers 는 [3,5,10,34,100] 과 같이 소트 됩니다.
메모: sort() 함수의 디폴트의 동작에서는, 각 엔티티가 string로서 처리됩니다.
Array.NUMERIC 인수는, 다른 데이터형을 실제로 Number 데이터형으로 변환하는 것은 아닙니다.
이것은, 단지 소트 알고리즘에 수치를 인식시킬 뿐입니다.
var numbers:Array = new Array(3,5,100,34,10); trace(numbers); // 3,5,100,34,10 numbers.sort(); trace(numbers); // 10,100,3,34,5 numbers.sort(Array.NUMERIC); trace(numbers); // 3,5,10,34,100
| sortOn | () | Methods |
AS3 function sortOn(fieldName:Object , options:Object = null):Array 배열내의 필드 (복수의 필드도 가능)에 근거해, 배열내의 엘리먼트를 소트 합니다. 배열은, 다음에 나타내는 특성을 갖추고 있을 필요가 있습니다.
fieldName Parameters를 복수 지정하는 경우, 선두의 필드가 제 1 sort field, 2 번째의 필드가 제 2 sort field, (이하 같이)라고 보여집니다. 소트는 Unicode 값에 근거해 실행됩니다. (ASCII 는 Unicode 의 부분집합입니다. )fieldName Parameters로 지정된 필드가, 비교 대상의 어느 엘리먼트에도 포함되지 않은 경우, 그 필드는 undefined 로 설정되어 있다고 보여집니다. 소트 끝난 배열에서는, 엘리먼트가 연속적이고 랜덤에 포함됩니다.
디폴트에서는,Array. sortOn() 는 다음과 같이 동작합니다.
Flash Player 7 에서는 options Parameters가 추가되었습니다. 이 Parameters를 사용하면, 디폴트의 소트 동작을 재정의(override) 할 수가 있습니다. 단순한 배열 (예를 들어, 1 개의 필드만을 가지는 배열)을 소트 하는 경우, 또는 options Parameters로 지원(support)되어 있지 않은 소트 순서를 지정하는 경우,Array.sort() 를 사용합니다.
복수의 플래그를 건네주려면 , 비트 단위의 논리합 (OR)(|) 연산자로 단락짓습니다.
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
Flash Player 8 에서는, 복수의 필드에서 소트를 실시하는 경우에, 각 필드에 대해서 다른 소트 옵션을 지정하는 기능이 추가되었습니다. Flash Player 8 이후에서는,options Parameters는 다양한 소트 옵션의 배열을 받아들입니다. 각 소트 옵션은 fieldName Parameters의 sort field에 대응합니다. 다음의 예에서는, 제 1 sort field a 를 내림차순으로, 제 2 sort field b 를 수치 소트로, 제 3 sort field c 를 대문자와 소문자를 구별하지 않고 소트 합니다.
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
메모 :fieldName 배열과 options 배열의 엘리먼트는 동수일 필요가 있습니다. 그렇지 않은 경우,options 배열은 무시됩니다. 또,Array.UNIQUESORT 옵션과 Array.RETURNINDEXEDARRAY 옵션은, 배열내의 1 번째의 엘리먼트로서의 보고 사용할 수 있습니다. 그렇지 않은 경우, 이러한 옵션은 무시됩니다.
fieldName:Object — 소트치로서 사용하는 필드를 나타내는 string, 또는, 선두의 엘리먼트가 제 1 sort field, 2 번째가 제 2 sort field (이하 같이)를 나타내는 배열입니다.
|
|
options:Object (default = null) — bitwise OR (|) 연산자에 의해 단락지어져 소트 동작을 변경하는 정의가 끝난 정수의 수치 또는 이름입니다. options Parameters에는 다음의 값을 지정할 수 있습니다.
수치 형식 (2)은 아니고, string 형식의 플래그 ( |
Array —
반환값은, Parameters를 건네주었는지 어떠했는지에 따라서 다릅니다.
|
See also
vegetables 를 작성합니다.
다음에,push() 를 5 회 호출하는 것에 의해, 이 배열을 설정합니다. push() 를 호출할 때마다,
새로운 Vegetable object가 작성됩니다.
이 constructor 은, String (name) object와 Number (price) object를 받습니다.
다음에 나타내는 값을 사용해 push() 를 5 회 호출하는 것에 의해,
배열 [lettuce:1. 49, spinach:1. 89, asparagus:3. 99, celery:1. 29, squash:1. 44] 가 작성됩니다.
sortOn() Methods를 name Parameters와 함께 사용해,
배열 [asparagus:3. 99, celery:1. 29, lettuce:1. 49, spinach:1. 89, squash:1. 44] 를 작성합니다.
다음에, price Parameters와 NUMERIC 및 DESCENDING 정수를 사용해 sortOn() Methods를
(을)를 재차 호출하면, 다음과 같이 내림차순으로 소트 된 배열이 작성됩니다.
[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() 를 3 회 호출하는 것에 의해, 이 배열을 설정합니다. push() 를 호출할 때마다,
string name 및 city 와 zip 번호가
records 에 추가됩니다. 배열 엘리먼트의 출력에는 3 개의 for 루프가 사용되고 있습니다.
for 루프에서는, 엘리먼트가 추가된 순서에 출력됩니다. 2 번째의 for
루프는,records 를 소트 한 후에 실행됩니다. 소트는,sortOn() Methods를 사용해, 우선 name 에 근거해 행해져
다음에, 도시 (city)에 근거해 행해집니다. 3 번째의 for 루프에서는, 다른 출력이 작성됩니다. 이것은,
records 가 우선 city 에 근거해 행해져 다음에 name 에 근거해 행해지기 때문입니다.
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() 를 4 회 호출하는 것에 의해, 이 배열을 설정합니다. push() 를 호출할 때마다,
User object가 작성되어name string와
age uint 가 users 에 추가됩니다. 결과적으로, 배열은 다음과 같이 설정됩니다.
[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 라고 하는 배열을 작성해,
age 에 근거해,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 | () | Methods |
AS3 function splice(startIndex:int , deleteCount:uint , ... values):Array 배열의 엘리먼트를 추가 및 삭제합니다. 이 Methods는, 복사를 작성하지 않고, 배열을 변경합니다.
메모: Array 의 서브 클래스내에서 이 Methods를 재정의(override) 하려면 , 다음의 예와 같이, Parameters에 ...args 를 사용합니다.
public override function splice(...args) {
// 여기에 명령문(statement)를 기술
}
Parameters
startIndex:int — 삽입 또는 삭제를 개시하는 배열 엘리먼트의 인덱스를 나타내는 정수입니다. 부의 정수를 사용하면, 배열의 말미를 기준으로서 위치를 지정할 수 있습니다. 예를 들어,-1 는 배열의 마지막 엘리먼트입니다.
|
|
deleteCount:uint — 삭제하는 엘리먼트수를 나타내는 정수입니다. 이 수에는,startIndex Parameters로 지정하는 엘리먼트가 포함됩니다. deleteCount Parameters에 값을 지정하지 않으면startIndex Parameters로 지정한 배열 엘리먼트로부터 마지막 배열 엘리먼트까지의 값이 모두 삭제됩니다. 값으로 해서 0 을 지정하면, 엘리먼트는 삭제되지 않습니다.
|
|
... values — startIndex Parameters로 지정한 배열내의 위치에 삽입하는 칸마 단락치 또는 배열의 옵션 리스트입니다.
|
Array —
원의 배열로부터 삭제된 엘리먼트를 포함한 배열입니다.
|
[spinach, green pepper, cilantro, onion, avocado]를 가지는 Array object vegetables 를 작성합니다. 다음에, splice()
Methods를, Parameters 2 로 2 를 사용해 호출합니다.
이것에 의해,cilantro 와 onion 는 spliced 배열에 할당할 수 있습니다.
vegetables 배열에는 [spinach, green pepper, avocado] 가 포함됩니다.
splice() Methods를, Parameters 1 으로 0, 및
spliced 배열을 사용해
재차 호출해,[spinach, cilantro, onion, green pepper, avocado] 를 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
| toLocaleString | () | Methods |
public function toLocaleString():String
지정된 배열내의 엘리먼트를 나타내는 string를 돌려줍니다. 인덱스 0 으로부터 최대 인덱스까지의 배열내의 모든 엘리먼트를, 칸마로 단락지어진 연결 string로 변환해 돌려줍니다. ActionScript 3.0 Implements에 대해, 이 Methods는,Array.toString() 와 같은 값을 돌려줍니다.
String —
배열 엘리먼트의 string입니다.
|
See also
| toString | () | Methods |
public function toString():String
지정된 배열내의 엘리먼트를 나타내는 string를 돌려줍니다. 인덱스 0 으로부터 최대 인덱스까지의 배열내의 모든 엘리먼트를, 칸마로 단락지어진 연결 string로 변환해 돌려줍니다. custom separator를 지정하려면 ,Array.join() Methods를 사용합니다.
String —
배열 엘리먼트의 string입니다.
|
See also
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 | () | Methods |
AS3 function unshift(... args):uint 엘리먼트를 배열의 선두에 추가해, 배열의 새로운 길이를 돌려줍니다. 배열내의 다른 엘리먼트는, 원래의 위치 i 로부터 i-1 에 이동됩니다.
Parameters... args — 배열의 선두에 삽입되는 수치, 엘리먼트, 또는 변수입니다.
|
uint —
배열의 새로운 길이를 나타내는 정수입니다.
|
See also
names 를 작성합니다.
push() Methods를 사용해, string Bill 와 Jeff 를 추가합니다.
다음에,unshift() Methods를 2 회 호출해, string 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
Array 클래스의 소트 Methods에 대해서, 대문자와 소문자를 구별하지 않는 소트를 지정합니다. 이 정수는,sort() Methods 또는 sortOn() Methods의 options Parameters에 사용할 수 있습니다.
이 정수의 값은 1 입니다.
See also
| DESCENDING | 정수 |
public static const DESCENDING:uint = 2
Array 클래스의 소트 Methods에 대해서, 내림차순에서의 소트를 지정합니다. 이 정수는,sort() Methods 또는 sortOn() Methods의 options Parameters에 사용할 수 있습니다.
이 정수의 값은 2 입니다.
See also
| NUMERIC | 정수 |
public static const NUMERIC:uint = 16
Array 클래스의 소트 Methods에 대해서, 캐릭터 string는 아니고 수치에 의한 소트를 지정합니다. 이 정수를 options Parameters로 설정하면,sort() Methods와 sortOn() Methods는, 숫자를 캐릭터 string로서가 아니고, 수치로서 소트 합니다. NUMERIC 정수를 설정하지 않고 소트를 실행하면, 각 배열 엘리먼트는 캐릭터 string로서 처리되어 Unicode 순서로 소트 됩니다.
예를 들어, 값 [2005, 7, 35] 의 배열로,options Parameters에 NUMERIC 정수를 설정하지 않는경우, 소트 후의 배열은 [2005, 35, 7] 이 됩니다. 한편,NUMERIC 정수를 설정했을경우, 소트 후의 배열은 [7, 35, 2005] 가 됩니다.
이 정수는, 배열내의 수치 에 대해서만 적용됩니다. ["23", "5"] 등의, 수치 데이터를 포함한 string에는 적용되지 않습니다.
이 정수의 값은 16 입니다.
See also
| RETURNINDEXEDARRAY | 정수 |
public static const RETURNINDEXEDARRAY:uint = 8
소트 결과적으로, 배열 인덱스로 구성되는 배열을 돌려주는 것을 지정합니다. sort() Methods 또는 sortOn() Methods의 options Parameters에 이 정수를 사용하면, 원의 배열을 변경하지 않고 , 배열 엘리먼트의 복수의 뷰에 액세스 할 수가 있습니다.
이 정수의 값은 8 입니다.
See also
| UNIQUESORT | 정수 |
public static const UNIQUESORT:uint = 4
Array 클래스의 소트 Methods에 대해서, 일의성 소트 요건을 지정합니다. 이 정수는,sort() Methods 또는 sortOn() Methods의 options Parameters에 사용할 수 있습니다. 일의성 소트 옵션을 지정하면, 소트 대상의 임의의 2 개의 엘리먼트 또는 필드가 같은 값인 경우에, 소트가 종료합니다.
이 정수의 값은 4 입니다.
See also
myArr 를,
인수 이루어, 초기의 길이 0 으로 작성합니다.
package {
import flash.display.Sprite;
public class ArrayExample extends Sprite {
public function ArrayExample() {
var myArr:Array = new Array();
trace(myArr.length); // 0
}
}
}