AS3.0 Cookbook/배열2008. 7. 5. 20:06

배열에서 제공하는 메서드중에 값을 추가하는 unshift와 push가 있고 값을 빼서 반환하는 shift와 pop을 살펴보았는데 이들은 모두 배열의 맨 처음이나 맨뒤에 원소만을 처리하는 명령문이다... 물론 따로 만들 수 있지만 AS에서는 splice()라는 메서드를 통해 배열 중간의 원소를 삭제하거나 추가하는 방법이 있다.

배열의 중간 부터 원소를 삭제
* splice( 시작할 원소 번호 , 시작 원소에서 지울 개수 )


배열의 중간에 값을 삽입 : 두 번째 파라미터의 값이 0 이면 원소를 추가만 한다.
* splice( 시작할 원소 번호 , 시작 원소에서 지울 개수  , 추가할 원소 )

가령 아래와 같은 배열을 선언하고 splice를 테스트 한다.
var  ary:Array = ["서울" , "경기도" , "강원도" , "전라도" , "경상도" , "제주도" , "충청도"];

ary.splice( 1 , 2 )
결과 : 경기도,강원도
 
- 1번 원소에서 부터 2개의 원소를 제거하고 반환

ary.splice( 3 , 3 , "울산" , "광주" , "대전" )
결과 : 서울 , 경기도 , 강원도 , 울산 , 광주 , 대전 , 충청도
- 3번 원소 이후 3개를 삭제하고 그 자리에 3개의 원소를 추가

Posted by 버터백통
AS3.0 Cookbook/배열2008. 7. 5. 20:05

앞서 정수색인 배열을 선언하고 대괄호를 통해 원소의 값을 추가하는 방법을 알아 보았다. 이번에는 배열의 제일 앞이나 제일 뒤에 원소를 추가/삭제하는 방법을 살펴도록 한다.


[ 추가 메서드 ]
var ary:Array = ["a" , "b" , "c" , "d"]
위와 같은 배열이 선언되었다고 할 때 0번 원소의 자리에 "A"을 추가한다.
ary.unshift("A")
trace(ary)
         // 출력 : A,a,b,c,d

그리고 제일 마지막 원소 뒤에 "B"를 추가하여 보자
ary.push("B")
trace(ary)       
// 출력 : A,a,b,c,d,B

* unshift 메서드
unshift배열의 제일 앞 원소인 0번째 자리에 값을 추가하고 배열의 새길이를 반환한다.
위의 코드에서 ary.unshift("A") 부분을 trace하면 5라는 값을 보여준다 이는 기존의 4개의 원소에서 A가 추가되어 길이가 늘어났음을 의미한다.

* push 메서드
push는 unshift와 반대로 제일 마지막 원소 뒤에 값을 추가하고 배열의 새길이를 반환한다.
trace (ary.push("B") )f라고 값을 추가하면서 확인하여 보면 역시 "B"가 추가된 배열의 길이 6을 나타낸다.

[ 삭제 메서드 ]
var ary:Array = ["a" , "b" , "c" , "d"]
위의 테스트와 같은 배열에 앞의 원소를 삭제하여 보자.
trace( ary.shift() )      // 출력 : a
trace( ary )               // 출력 : b , c , d

제일 마지막 원소를 삭제한다.
trace( ary.pop() )       // 출력 : d
trace( ary )              
// 출력 : a , b , c


* shift메서드
shift는 배열의 0번 원소를 추출하여 반환하고 해당 배열의 0번 원소를 삭제한다. 삭제된 배열은 한칸씩 앞으로 당겨져 채워진다.


* pop메서드
pop메서드는 shift와 반대로 배열의 제일 마지막 원소를 삭제하여 반환한다.

Posted by 버터백통