const arr = [1, 2, 3];
delete arr[1];
console.log(arr); // [1, empty, 3]
console.log(arr.length); // 3
Array.prototype.splice(삭제를 시작할 인덱스, 삭제할 요소 수)
const arr = [1, 2, 3];
arr.splice(1, 1); // arr[1] 부터 요소 1개 삭제
console.log(arr); // [1, 3]
console.log(arr.length); // 2
요소를 하나도 제거하지 않고, 1번 인덱스에 새로운 요소 추가
const fruit = ['apple', 'banana', 'orange'];
fruit.splice(1, 0, 'mango');
console.log(fruit); // ['apple', 'mango', 'banana', 'orange']
2번 인덱스에서 요소 두 개 삭제
const fruit = ['apple', 'mango', 'banana', 'orange'];
fruit.splice(2, 2);
console.log(fruit); // ['apple', 'mango']
1번 인덱스에서 요소 한 개 제거하고, 새로운 요소 추가
const fruit = ['apple', 'mango', 'banana', 'orange'];
fruit.splice(1, 1, 'lemon');
console.log(fruit); // ['apple', 'lemon', 'banana', 'orange']
-2번 인덱스에서 요소 한 개 제거
const fruit = ['apple', 'mango', 'banana', 'orange'];
fruit.splice(-2, 1);
console.log(fruit); // ['apple', 'mango', 'orange']
2번 인덱스를 포함해서 이후의 모든 요소 제거
const fruit = ['apple', 'mango', 'banana', 'orange'];
fruit.splice(2);
console.log(fruit); // ['apple', 'mango']
1번 인덱스부터 2번 인덱스까지 (2번 인덱스 미포함) 새로운 배열 생성
const fruit = ['apple', 'mango', 'banana', 'orange'];
console.log(fruit.slice(1, 2)); // ['mango']
console.log(fruit); // ['apple', 'mango', 'banana', 'orange']
2번 인덱스를 포함해서 이후의 모든 요소를 포함한 새로운 배열 생성
const fruit = ['apple', 'mango', 'banana', 'orange'];
console.log(fruit.slice(2)); // ['banana', 'orange']
console.log(fruit); // ['apple', 'mango', 'banana', 'orange']
-2번 인덱스를 포함해서 이후의 모든 요소를 포함한 새로운 배열 생성
const fruit = ['apple', 'mango', 'banana', 'orange'];
console.log(fruit.slice(-2)); // ['banana', 'orange']
console.log(fruit); // ['apple', 'mango', 'banana', 'orange']
1번 인덱스부터 -1번 인덱스까지 (-1번 인덱스 미포함) 새로운 배열 생성
const fruit = ['apple', 'mango', 'banana', 'orange'];
console.log(fruit.slice(1, -1)); // ['mango', 'banana']
console.log(fruit); // ['apple', 'mango', 'banana', 'orange']
구분 | slice | splice |
---|---|---|
개념 | 어떤 배열의 처음 인덱스부터 마지막 인덱스까지 (마지막 인덱스 미포함)에 대한 새로운 배열을 반환 | 배열의 기존 요소를 삭제, 교체하거나 새 요소를 추가하여 기존 배열 변경 |
원본 배열 | 변하지 않음 | 변함 |
용도 | 새로운 배열을 반환할 때 사용 | 기존 배열의 내용을 변경할 때 사용 |
두 번째 인수의 의미 | 마지막 인덱스 | 삭제할 요소 개수 |
출처 : 모던 자바스크립트 Deep Dive, MDN
정말 유익한 글이었습니다.