JS' 공부흔적

[JavaScript] splice 함수에 대하여 본문

JavaScript

[JavaScript] splice 함수에 대하여

이준수 2022. 12. 21. 17:58

splice 함수에 대해 그때그때 찾아보기만 하다가 잘 기억하지 못 하게 되면서 아예 직접 정리를 하기로 결심했다.

splice 함수 배열의 기존 요소를 삭제하거나 추가하여 배열의 내용을 변경할 때 사용한다. splice의 형태는 아래와 같다.

array.splice(start, deleteCount,item1, item2, ...);

start는 배열의 변경을 시작할 인덱스이다. 배열의 길이보다 크거나 같은 값이라면 그냥 무시된다. start가 음수라면 배열의 끝에서부터 요소를 센다. 예를 들어 -1이라면, 배열의 가장 끝 요소를 가리킨다. 만약 음수일 때, 절대값이 배열의 길이보다 크다면 0으로 설정된다.

 

deleteCount는 배열에서 제거할 요소의 수이다. 이를 생략하거나 start부터 배열 끝까지의 요소 갯수보다 큰 값이라면 start부터의 모든 요소를 제거한다. deleteCount가 0 이하면 요소를 제거하지 않는다.

 

item은 배열에 추가할 요소이다.

let arr = [1,2,3];

// case 1
arr.splice(1,2); // 1번 인덱스부터 2개의 요소를 제거
console.log(arr); // [1]

// case 2
arr.splice(3,2); // start가 배열의 길이 이상이므로 무시됨
console.log(arr); // [1,2,3]

// case 3
arr.splice(-1,2); // -1번 인덱스(배열의 가장 끝)부터 2개의 요소를 제거, 즉 배열의 가장 끝부터 모든 요소 제거
console.log(arr); // [1,2]

// case 4
arr.splice(-5,2); // start가 음수이고 절대값이 배열의 길이보다 크므로 0으로 설정
console.log(arr); // [3]

// case 5
arr.splice(1,0,10,20); // deleteCount가 0이므로 요소를 제거하지 않고, 1번 인덱스에 10,20 추가
console.log(arr); // [1,10,20,2,3]

splice 함수는 제거한 요소를 담은 배열을 반환한다. 위의 case 4의 경우 [1, 2]가 반환된다. 아무 값도 제거하지 않았다면 빈 배열을 반환한다.

728x90
반응형