배열에서 제공하는 메서드중에 값을 추가하는 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개의 원소를 추가
'Pop'에 해당되는 글 2건
- 2008.07.05 정수색인 배열 중간에 원소를 삭제나 추가하는 메서드 splice()
- 2008.07.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와 반대로 배열의 제일 마지막 원소를 삭제하여 반환한다.