splice()는 배열의 기존 요소를 삭제 또는 교체하거나 새로운 배열의 내용을 추가한다.
const arr = [1, 2, 3, 4, 5]
const newArr = arr.splice(1, 3);
// arr에서 인덱스 1부터 3개를 제거해줘!
console.log(newArr);
console.log(arr);
// 결과
[ 2, 3, 4 ]
[ 1, 5 ]
결과와 같이 제거할때는 2개의 매개변수를 필요로 한다.
그리고 여기서 중요한 것은 기존에 있던 arr에 영향을 가는 것이다.
const arr = [1, 2, 3, 4, 5]
const newArr = arr.splice(5, 0, 6);
console.log(newArr);
console.log(arr);
// 결과
[]
[ 1, 2, 3, 4, 5, 6 ]
아무것도 제거하지 않으면 [], 빈배열이 반환된다.
만약 start인자에 5가 아닌 10을 넣어도 마지막 배열에 6을 추가해준다.
const arr = [1, 2, 3, 4, 5]
const newArr = arr.splice(0, 1, 6);
console.log(newArr);
console.log(arr);
// 결과
[ 1 ]
[ 6, 2, 3, 4, 5 ]
3개의 인자 모두 적어주면 제거한 자리에 추가할 item이 들어간다.
splice는 filter, map, find같은 함수와 다르게 기존 arr에 직접 동작을 하는 함수이니깐 주의 해야한다.!!
기존 배열을 손상시키지 않고 원하는 배열부분만을 뽑아오려면 slice를 활용하면 된다.
아무 값도 제거하지 않았으면 [], 빈배열을 반환한다.