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

자바스크립트에서 배열의 원소를 지울때 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를 쓰면 이런식으로 해당 부분이 지워지고 그 다음부분을 당겨서 자리를 메우게됩니다.

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

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.