728x90
반응형
질문 : JavaScript에서 배열 요소 삭제 - delete vs splice
Array.splice
메서드를 사용하는 것과 반대로 배열 요소 에서 delete
연산자 를 사용하는 것의 차이점은 무엇입니까?
예를 들면 :
myArray = ['a', 'b', 'c', 'd'];
delete myArray[1];
// or
myArray.splice (1, 1);
객체로 할 수있는 것처럼 배열 요소를 삭제할 수 있는데 왜 splice 방법이 있습니까?
답변
delete
는 객체 속성을 삭제하지만 배열을 다시 인덱싱하거나 길이를 업데이트하지 않습니다. 이렇게하면 정의되지 않은 것처럼 보입니다.
> myArray = ['a', 'b', 'c', 'd']
["a", "b", "c", "d"]
> delete myArray[0]
true
> myArray[0]
undefined
실제로 값이 undefined
설정되어 있지 않고 배열에서 속성이 제거되어 정의되지 않은 것처럼 보입니다. Chrome 개발 도구는 배열을 로깅 할 때 empty
으로 인쇄하여 이러한 구분을 명확하게합니다.
> myArray[0]
undefined
> myArray
[empty, "b", "c", "d"]
myArray.splice(start, deleteCount)
실제로 요소를 제거하고 배열을 다시 색인화하며 길이를 변경합니다.
> myArray = ['a', 'b', 'c', 'd']
["a", "b", "c", "d"]
> myArray.splice(0, 2)
["a", "b"]
> myArray
["c", "d"]
출처 : https://stackoverflow.com/questions/500606/deleting-array-elements-in-javascript-delete-vs-splice
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
Value로 JavaScript 객체에서 키를 얻는 방법 (0) | 2021.06.23 |
---|---|
Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction (0) | 2021.06.23 |
Notepad ++에서 JSON을 다시 포맷하는 방법 (0) | 2021.06.22 |
Node.js와 함께 jQuery를 사용하는 방법 (0) | 2021.06.22 |
Node.js 빠른 파일 서버 (HTTP를 통한 정적 파일) (0) | 2021.06.22 |