이름도 기능도 비슷해서 항상 헷갈리는 내장함수중 하나다.
둘다 기존 배열에서 항목을 잘라낼 때 사용한다.
차이점은 기존의 배열자체를 잘라내는지 아니면 새로운 배열을 만들어내는지이다.
splice
splice(자르기 시작할 항목의 index, 자르기 시작할 항목에서부터 뒤쪽으로 잘라낼 항목의 갯수)
const numbers = [10, 20, 30, 40];
const index = numbers.indexOf(30);
const spliced = numbers.splice(index, 2);
console.log(spliced);
console.log(numbers);
=> [30, 40]
=> [10, 20]
splice를 사용하자 기존의 numbers배열 자체가 수정됐다.
slice
slice(자르기 시작할 항목의 index, 마지막으로 잘라낼 항목 idex+1);
const numbers = [10, 20, 30, 40];
const sliced = numbers.slice(0, 2);
console.log(sliced);
console.log(numbers);
=> [10, 20]
=> [10, 20, 30, 40]
slice를 사용해도 기존의 numbers배열은 수정되지 않는다.
상황에 맞는 함수를 사용하면 된다.