반응형

JS : 배열 삭제(Array remove)

작성 계기

 일반적인 모듈에서 많이 사용하는 것에 비해서 자주 잊어 먹기때문에 정리를 해두려는 목적으로 작성하였다. 물론 w3s에서 제공하는 영문 문서에 가장 자세하게 기록이 되어 있다.


배열 삭제 메서드

JS는 어떠한 객체든지 기본적인 메서드를 갖고 있다. 그 중 배열타입(자료형: type)에서 제공 되는 삭제는 많이 갖고 있다. 이러한 메서드들은 객체에 귀속되어 있기 때문에 사용할 때에는 객체 뒤에 닷(dot: ".")을 찍어 줘야 한다.


pop()

 스택 자료형에서 들어 본적이 있다면, 익숙한 단어이다. 당연 배열의 가장 뒤에서 부터 삭제를 하는 메서드이다. 이때 삭제되는 원소가 반환된다.

var arr = [1, 2, 3, 4];
var one = arr.pop();   // one === 4


shift()

 큐 자료형에서 들어본적 있을 법한 단어이다. pop()과는 순서상 반대로 배열의 앞에 있는 원소를 반환하면서 삭제한다.

var arr = [1, 2, 3, 4];
var one = arr.pop();    // one === 1


delete

 엄밀하게는 메서드라 할 수 없다. 때문에 사용법도 다르다. 게다가 이 방법으로 삭제된 배열의 원소는 공백(undefined)이 생긴다. 가능하면 쓰지 말자. pop()과 shift()와의 차이점은 배열의 원하는 위를 바로 삭제할 수 있다.

var arr = [1, 2, 3, 4];
delete arr[2];    // arr === [1, 2, undefined, 4]


splice(index, number)

 앞의 pop()과 shift()는 맨앞이나 맨뒤의 요소만 삭제가 가능하다. 하지만 이 메서드는 배열의 중간에 삭제할 수 있다. index배열의 index 번호이고, 뒤의 number는 삭제할 개수이다. 해당 메서드는 삭제외에 삽입의 기능으로 사용도 가능하다. number이후에 추가되는 객체들은 배열에 삽입이 된다. 배열에서 원하는 위치에서 배열의 원소를 삭제하고 싶을 경우 사용이 가능하기 때문에 보통 일반적인 클래스를 만들때 사용하면 매우 유용하다.

var arr = [1, 2, 3, 4];
arr.splice(1, 2);    // arr === [1, 4]


참고자료

w3s : http://www.w3schools.com/js/js_array_methods.asp

반응형

+ Recent posts