JavaScript/JavaScript,jQuery

[JavaScript] 배열을 가공하여 배열을 변경하는 splice() 함수

mingmongs 2025. 3. 24. 15:06

title

자바스크립트에서 배열을 다룰 때 자주 사용하게되는 함수 중에서도
앞서서 slice() 함수에 대해서 소개했는데,
이번에는 그와 이름이 비슷한 splice 함수에 대해 알아보자.

 

1) splice()

: 원본 배열에 새로운 요소를 추가하거나 기존요소를 삭제 또는 교체하여 원본 배열을 변경 하고 제거된 배열을 반환하는 함수이다.
문법

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • start: 시작 인덱스(index)
  • deleteCount(Optional): 배열에서 제거할 요소의 수
  • item1, item2, ...(Optional): 배열에 추가할 요소로, 생략할 경우 요소를 제거하기만 함

 

2) 예시1. 요소를 제거하지 않고 추가만 하는 경우

let arr = ['apple', 'banana', 'grape', 'watermelon'];
let resultArr = arr.splice(1, 0, 'strawberry', 'orange');
console.log(arr);
console.log(resultArr);

 

결과값

> (6) ['apple', 'strawberry', 'orange', 'banana', 'grape', 'watermelon']
> []

※ 반환값

: splice 함수의 반환값은 제거한 요소를 담은 배열이다.
따라서 배열의 요소를 제거하지 않으면 출력했을 때 반환되는 값은 빈 배열([])이다.

 

3) 예시2. 요소를 추가하지 않고 제거만 하는 경우

예시 1

let arr = ['apple', 'banana', 'grape', 'watermelon'];
let resultArr = arr.splice(3, 1);
console.log(arr);
console.log(resultArr);

 

결과값 1

> (3) ['apple', 'banana', 'grape']
> ['watermelon']

 

예시 2

let arr = ['watermelon', 'strawberry', 'mango', 'apple', 'banana', 'grape'];
let resultArr = arr.splice(1);
console.log(arr);
console.log(resultArr);

 

결과값 2

> ['watermelon']
> (5) ['strawberry', 'mango', 'apple', 'banana', 'grape']

 

4) 예시3. 요소를 제거하고 추가도 하는 경우

let arr = ['watermelon', 'strawberry', 'mango', 'apple', 'banana', 'grape'];
let resultArr = arr.splice(2, 2, 'orange');
console.log(arr);
console.log(resultArr);

 

결과값

> (5) ['watermelon', 'strawberry', 'orange', 'banana', 'grape']
> (2) ['mango', 'apple']

 

 

[reference]
https://tocomo.tistory.com/31
https://www.daleseo.com/js-array-slice-splice/