WonHada.com으로 이전

Array 클래스에 새롭게 추가된 메소드 본문

플래시/플렉스[Flash/Flex]

Array 클래스에 새롭게 추가된 메소드

반주부 2007. 11. 15. 12:24
반응형


액션스크립트 3.0에서는 Array 클래스에 새로운 메소드들이 추가 되었습니다..
어떤것이 있고 어떻게 사용하는지 알아보도록 하죠..

=========================================================================
every(callback:Function, thisObject:* = null):Boolean
▷ 배열 내의 모든 요소를 검사합니다. 하나라도 조건과 맞지 않다면 false를, 모두 맞다면 true를 반환합니다.

<사용예>
var tmpArr:Array = ["test1", "test2", 3];
trace(tmpArr.every(isNumeric)); //모두 Number가 아니므로 false를 반환

function isNumeric(item:*, index:int, arr:Array):Boolean {
 return (item is Number);
}

** 흔히 쓰는 방식처럼 배열의 0번 요소부터 차례대로 돌면서 false가 나오면 break를 걸더라구요..

=========================================================================
forEach(callback:Function, thisObject:* = null):void
▷ 배열을 for문으로 돌리는 것과 같습니다.

<사용예>
var tmpArr:Array = [
   {Name:"홍길동", Age:35},
   {Name:"김철수", Age:30},
   {Name:"이영희", Age:26},
   {Name:"박일용", Age:30}
 ];
tmpArr.forEach(traceResult);

function traceResult(item:*, index:int, arr:Array):void {
 trace("Name : ", item.Name, ", Age", item.Age);
}

//trace() 값
Name :  홍길동 , Age 35
Name :  김철수 , Age 30
Name :  이영희 , Age 26
Name :  박일용 , Age 30

=========================================================================
filter(callback:Function, thisObject:* = null):Array
▷ 조건에 맞는 인자들을 걸러서 배열로 반환합니다.

<사용예>
var tmpArr:Array = [
   {Name:"홍길동", Age:35},
   {Name:"김철수", Age:30},
   {Name:"이영희", Age:26},
   {Name:"박일용", Age:30}
 ];
var resultArr:Array = tmpArr.filter(getSameAge);
resultArr.forEach(traceResult); //값을 찍기 위해 위에서 설명한 forEach()를 사용

function getSameAge(item:*, index:int, arr:Array):Boolean {
 return (item.Age == 30);
}

function traceResult(item:*, index:int, arr:Array):void {
 trace("Name : ", item.Name, ", Age", item.Age);
}

//trace() 값
Name :  김철수 , Age 30
Name :  박일용 , Age 30

=========================================================================
indexOf(searchElement:*, fromIndex:int = 0):int
▷ 배열에서 searchElement와 같은 요소의 index 값을 추출합니다. (방향: 앞 -> 뒤)

<사용예>
var tmpArr:Array = ["주몽", "오이", "마리", "협보"];
var index:int;

index = tmpArr.indexOf("마리");
trace(index); //2

tmpArr.push("주몽"); //주몽 추가
index = tmpArr.indexOf("주몽", 1); //두번째 요소부터 뒤로 주몽을 찾음
trace(index); //4

=========================================================================
lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
▷ 배열에서 searchElement와 같은 요소의 index 값을 추출합니다. (방향: 뒤 -> 앞)

<사용예>
var tmpArr:Array = ["주몽", "오이", "마리", "협보"];
var index:int;

index = tmpArr.lastIndexOf("마리");
trace(index); //2

tmpArr.push("주몽"); //주몽 추가
index = tmpArr.lastIndexOf("주몽", 1); //두번째 요소부터 앞으로 주몽을 찾음
trace(index); //0

=========================================================================
map(callback:Function, thisObject:* = null):Array
▷ 배열을 for문으로 돌면서 코드를 적용하는 것과 같습니다.

<사용예>
var tmpArr:Array = new Array("hong", "kim", "lee");

var resultArr:Array = tmpArr.map(toUpper);
trace(resultArr); //HONG,KIM,LEE

function toUpper(item:*, index:int, arr:Array):String {
 return String(item).toUpperCase();
}

=========================================================================
some(callback:Function, thisObject:* = null):Boolean
▷ 배열 내의 모든 요소를 검사합니다. 하나라도 조건과 맞다면 true를, 모두 맞지 않다면 false를 반환합니다.

<사용법>
var tmpArr:Array = new Array();
tmpArr[0] = "주몽";
tmpArr[1] = "오이";
tmpArr[3] = "협보";
var resultBoolean:Boolean = tmpArr.some(isUndefined);
trace(resultBoolean); //true

function isUndefined(item:*, index:int, arr:Array):Boolean {
 return (item == undefined);
}

** every()는 모두 맞을 경우 true를 반환하지만 some()은 하나라도 맞을 경우 true를 반환합니다..

=========================================================================

이상입니다..그 밖의 메소드들은 대부분 기존에 사용하던 것들이니 잘 아실거에요..

날씨가 갑자기 추워졌습니다..감기 조심하시길^^









반응형