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

조회수 676회

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

소스코드

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

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

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

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를 쓰면 이런식으로 해당 부분이 지워지고 그 다음부분을 당겨서 자리를 메우게됩니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.