자바스크립트에서 배열의 원소를 지울때


자바스크립트에서 배열의 원소를 지울때 delete 연산자를 쓰거나 Array의 메소드인 splice를 쓰잖아요. 근데 이 둘의 차이점은 뭔가요?

소스코드

myArray = ['a', 'b', 'c', 'd'];

//delete myArray[1];      
//myArray.splice (1, 1);

이런 상황에서 delete를 썼을때와 splice를 썼을때의 차이를 보여주세요.

  • 2016년 02월 25일에 작성됨

조회수 117


1 답변


좋아요
0
싫어요
채택취소하기

먼저 delete를 쓰게되면

> myArray = ['a', 'b', 'c', 'd']
  ["a", "b", "c", "d"]
> delete myArray[0]
  true
> myArray
  [undefined, "b", "c", "d"]

지워진 원소를 undefined가 차지하게됩니다. 그리고

> myArray = ['a', 'b', 'c', 'd']
  ["a", "b", "c", "d"]
> myArray.splice(0, 2)
  ["a", "b"]
> myArray
  ["c", "d"]

splice를 쓰면 이런식으로 해당 부분이 지워지고 그 다음부분을 당겨서 자리를 메우게됩니다.

  • 2016년 02월 25일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close