두 손끝의 창조자

Array에 Remove 기능 만들기 본문

프로그래밍언어/Javascript

Array에 Remove 기능 만들기

codinglog 2014. 10. 23. 11:16

JavaScript Array에서 Element 하나를 지울 때 delete Operator를 사용하여 지울 수 있습니다. 이 명령어로 삭제를 했을 때 해당하는 index는 undefined로 바뀌고 Array의 길이는 변하지 않습니다.

var fruits = ["Banana", "Orange", "Apple", "Mango"];
delete fruits[1];

위 구문 실행 후 fruits의 상태는 

원하는 결과 : ["Banana", "Apple", "Mango"] 
처리 결과 : ["Banana", undefined, "Apple", "Mango"] 

이렇게 되어 원하는 결과를 얻지 못하는데요, 원하는 결과를 얻기 위해서는 splice() Method를 사용 해야합니다.

fruits.splice(1, 1);

이 메소드를 이용하면 원하는 결과를 얻을 수 있지만 사실 귀찮고 헷갈릴 수 있습니다. 그래서 아예 Array에 Remove 기능을 Prototype에 넣어서 필요할 때 쉽게 쓸 수 있도록 만들 수 있습니다.

Array.prototype.remove=function(id){
    var index = this.indexOf(id);
    if(index >= 0){
        return this.splice(index,1);
    }else{
        return this;
    }
};

위와 같이 prototype에 정의를 해 놓으면 Array에 있는 것들 중 parameter로 넘어온 값을 가진 Element를 쉽게 삭제 할 수 있습니다. Remove function은 구현하기 나름이니 값을 입력을 받든 index를 입력받는 여러가지 형태로 구현할 수 있습니다.

fruits.remove("Banana");


반응형
Comments