
맨날 까먹어서 그만 좀 까 잡수라고 확실히 정리한다.
두 메서드 모두 배열의 원소를 제거할 때 사용하는데
slice => 원본 배열을 건드리지 않고 원소를 제거 한 값을 리턴
splice => 원본 배열 자체의 원소를 제거
let originalArr = [1, 2, 3, 4];
let newArr = originalArr.slice(0, 2); // 0번째 index부터 2개 slice
console.log(originalArr); // [1, 2, 3, 4]
console.log(newArr); // [1, 2]
위처럼 slice는 원본 배열엔 변화를 주지 않고 slice 된 값들을 배열로 return한다.
let originalArr = [1, 2, 3, 4];
let newArr = originalArr.splice(0, 2); // 0번째 index부터 2개 slice
console.log(originalArr); // [3, 4]
console.log(newArr); // [1, 2]
반면 splice()를 사용하면 원본 배열은 slice 된 요소들 또한 직접적으로 삭제가 되고 그 요소들을 배열로 return한다.
결론적으로 특정 인덱스부터 n개를 slice 하고 그걸 배열로 리턴하는건 동일하지만
핵심은 원본 배열을 건드리냐 안건드리냐다.
그만 좀 까먹어 ~