배열의 기존 요소를 삭제, 교체하거나 새 요소를 추가해 배열의 내용을 변경하는 메서드이다.
배열명.splice(startIndex, deleteCount, addElement);
startIndex : 배열의 변경을 시작할 인덱스, 뒤부터 삭제하려면 -를 사용하면 된다.
deleteCount : 삭제할 요소의 개수, 생략할 경우 startIndex부터 모든 요소를 제거한다. 0이하의 값 지정시 새로운 요소를 추가하기 위해 addElement를 지정해야 한다.
addElemenet : 배열에 추가할 요소, 지정하지 않을 경우 삭제만 이루어진다.
let arr = [10, 20, 30, 40, 50];
let delArr = arr.splice(1, 1);
console.log(arr); // [ 10, 30, 40, 50 ]
console.log(delArr); // [ 20 ]
splice() 메서드는 제거한 요소를 담은 배열이 반한된다.
let arr = [10, 20, 30, 40, 50];
let modArr = arr.splice(0, 0, 'r');
console.log(arr); // [ 'r', 10, 20, 30, 40, 50 ]
console.log(modArr);
0번째 인덱스에 삭제되는 요소 없이 'r' 요소만 추가된다.
let arr = [10, 20, 30, 40, 50];
let modArr = arr.splice(2, 1, 'r', 'g', 'b');
console.log(arr); // [10, 20, 'r', 'g', 'b', 40, 50]
console.log(modArr); // [30]
인덱스 2번 요소 한개가 삭제되며 인덱스 2번에 r, g, b가 순서대로 추가된다.
let arr = [10, 20, 30, 40, 50];
let modArr = arr.splice(2);
console.log(arr); // [ 10, 20 ]
console.log(modArr); // [ 30, 40, 50 ]
인덱스 2번을 포함한 다음 요소는 모두 삭제된다.
참고
splice()