펭귄집

배열 요소 삭제



배열도 객체임으로 배열요소나 프로퍼티를 삭제하는데 delete연산자가 사용 가능


var arr = ['zero','one','two','three'];

delete arr[2];
console.log(arr);  //(출력값)  ["zero","one",undefined X1,"three"]
console.log(arr.length);     //(출력값)  4



delete arr[2]로 배열의 요소를 삭제하면, arr[2]에 undefined가 할당된다.
그러나 delete연산자로 배열 요소 삭제 후에도 배열의 length값은 변하지 않는다.

-> 즉, delete 연산자는 해당 요소의 값을 undefined로 설정할 뿐 원소자체를 삭제하지는 않는다.




=> 이때문에 보통 배열에서 요소들을 완전히 삭제할 경우 자바스크립트에서 splice()배열 메서드를 사용한다.







splice() 배열 메서드
splice(start, deleteCount, item ...)
start : 배열에서 시작위치
deleteCount - start에서 지정한 시작 위치부터 삭제할 요소의 수

item - 삭제할 위치에 추가할 요소 




var arr = ['zero','one','two','three'];

arr.splice(2,1);    //2번째 요소를 시작점으로 1개의 원소를 삭제한다
console.log(arr);          //(출력값) ["zero","one","two","three"]
console.log(arr.length);   //(출력값) 3


splice(2,1) 메서드로 arr배열 내 2번째 위치부터 1개의 요소를 삭제했다.


delete연산자와 다르게 배열요소를 완전히 없애게 된다 


-> 따라서 배열 개수도 3





<참고문헌 : 인사이드자바스크립트>