코드로보시죠
[JavaScript-31] 배열 요소 삭제: splice [vs] delete 본문
결론부터 말하면,
delete 배열이름[인덱스번호] 방식은 값 자체만 비우고, 공간은 남아있습니다. length가 줄지 않습니다.
splice를 쓰면, 정말 공간까지 사라져 length도 줄고, 빈 칸은 자동으로 땡겨줍니다.
그래서 보통은 splice메소드를 많이 씁니다.
splice 메소드의 사용법은 다음과 같습니다
//배열이름.splice(삭제 시작할 인덱스, 삭제할 요소 개수);
예를 들어 볼까요?
코드로 보시죠
let arr1 = [1, 2, 3, 4, 5];
let arr2 = [6, 7, 8, 9, 0];
//1번 요소 1개만 삭제
arr1.splice(1, 1);
console.log(arr1); //[1, 3, 4, 5]
//3번째~5번째 요소 3개 삭제
arr2.splice(2, 3);
console.log(arr2); //[6, 7]
이해가 훨씬 잘 되시죠?
만약 delete키워드로 삭제를 하셨다면, 요소의 개수는 유지되고, 값만 empty로 바뀌게 됐겠죠.
자 그런데, splice메소드는 파라미터 값을 하나만 받을 수도 있어요.
let arr1 = [1, 2, 3, 4, 5];
//2번 요소부터 끝까지 다 삭제
arr1.splice(2);
console.log(arr1); //[1, 2]
이렇게, splice메소드의 파라미터에 값을 하나만 넘겨주면, 그 번호부터 나머지 전체를 모두 지우란 의미입니다.
'[JavaScript] 코드잇과 함께!' 카테고리의 다른 글
[JavaScript-33] shift, pop, unshift, push - 배열의 맨 앞, 맨 뒤 다루기 (0) | 2023.09.28 |
---|---|
[JavaScript-32] splice메소드로 값 추가 및 수정하기 (0) | 2023.09.28 |
[JavaScript-30] 배열(array)의 기초(인덱싱, 요소 수정 & 추가, length) (0) | 2023.09.28 |
[JavaScript-29] new 키워드로 내장객체 사용하기(feat. Date 객체) (0) | 2023.09.28 |
[JavaScript-28] 객체 for in 반복문 (0) | 2023.09.28 |