Array.prototype.splice() 그리고 Array.prototype.slice() 차이는 원본 배열을 수정하는가, 수정하지 않는가로 구분할 수 있다.
splice()
splice(start[, deleteCount[, item1[, item2[, ...]]]]) 형태를 갖고 있다.
시작지점(start)부터 deleteCount 개수만큼 배열 아이템을 제거하고, itemN이 주어지면 배열에 추가한다. 제거된 아이템들을 배열로 반환한다.
const arr = ['A', 'B', 'C', 'D'];
const result = arr.splice(1, 1); // arr[1]부터 아이템 한개를 삭제한다.
arr: ['A', 'C', 'D']
result: ['B']
JavaScript
복사
const arr = ['A', 'B', 'C', 'D'];
const result = arr.splice(2, 1, 'Z');
// arr[2]부터 아이템 한개를 삭제하고 'Z' 아이템을 추가한다.
arr: ['A', 'B', 'Z', 'D']
result: ['C']
JavaScript
복사
slice()
slice([begin[, end]]) 형태를 갖고 있다.
begin부터 end-1까지 아이템의 얕은 복사본을 반환한다.
const arr = ['A', 'B', 'C', 'D'];
const result = arr.slice(2); // arr[2]부터 끝까지 복사한다.
arr: ['A', 'B', 'C', 'D']
result: ['C', 'D']
JavaScript
복사
const arr = ['A', 'B', 'C', 'D'];
const result = arr.slice(2, 3); // arr[2]부터 arr[3-1]까지 복사한다.
arr: ['A', 'B', 'C', 'D']
result: ['C']
JavaScript
복사