splice 메소드
splice 메소드는 배열에서 요소를 삭제하거나
추가합니다. 요소를 삭제만 하거나, 추가만 하거나,
두 작업을 동시에 수행할 수 있습니다. 이 메소드는
매우 유연하지만 이해하기 어려울 수 있습니다.
메소드는 원본 배열을 변경하고 삭제된 요소들의
배열을 반환합니다.
메소드의 첫 번째 매개변수는 삭제를 시작할 배열 요소의
인덱스입니다. 두 번째 매개변수는 배열에서 삭제할
요소의 개수입니다.
이 값을 0으로 설정하면 요소가 삭제되지 않습니다
(새로운 요소만 추가됩니다).
그 다음으로 쉼표로 구분하여 배열에 추가할 요소들이
옵니다 (선택적 매개변수입니다). 이 요소들은 배열에서
삭제된 요소들의 자리에 추가됩니다.
삭제가 수행되지 않은 경우 (두 번째 매개변수가
0일 때) - 요소들은 메소드의 첫 번째 매개변수로
지정된 위치부터 배열에 삽입됩니다.
첫 번째 매개변수는 음수 값을 가질 수 있습니다.
이 경우 위치 계산은 배열의 시작이 아닌 끝에서부터
시작합니다. 마지막 요소는 -1의 번호를 가집니다.
문법
배열.splice(삭제 시작 위치, 삭제할 요소 수, [삽입할 요소], [삽입할 요소]...);
예시
첫 번째 요소부터 시작하여 세 개의 요소를 삭제해 봅시다:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(1, 3);
console.log(arr);
코드 실행 결과:
['a', 'e']
예시
삭제된 요소들의 배열을 출력해 봅시다:
let arr = ['a', 'b', 'c', 'd', 'e'];
let del = arr.splice(1, 3);
console.log(del);
코드 실행 결과:
['b', 'c', 'd']
예시
먼저 2번 인덱스의 요소를 삭제한 후,
그 자리에 세 개의 새 요소를 삽입해 봅시다:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1, '1', '2', '3');
console.log(arr);
코드 실행 결과:
['a', 'b', '1', '2', '3', 'd', 'e']
예시
이제 아무것도 삭제하지 않고,
2번 위치에 세 개의 새 요소를 삽입해 봅시다:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 0, '1', '2', '3');
console.log(arr);
코드 실행 결과:
['a', 'b', '1', '2', '3', 'c', 'd', 'e']
예시 . 음수 값
끝에서 두 번째 요소를 삭제해 봅시다:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(-2, 1);
console.log(arr);
코드 실행 결과:
['a', 'b', 'c', 'e']