이 번역은 완료되지 않았습니다. 이 문서를 번역해 주세요.

요약

splice() 메소드는 배열에 있는 요소를 삭제하고(하거나) 배열에 새 요소를 추가한다.

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

myFish.splice(2, 0, 'drum'); // 'drum'을 두번째 인덱스에 삽입
// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]

myFish.splice(2, 1); // 두번째 인덱스에서 하나의 항목('drum')을 삭제
// myFish is ["angel", "clown", "mandarin", "sturgeon"]

문법(Syntax)

array.splice(start)
array.splice(startdeleteCount)
array.splice(startdeleteCountitem1item2, ...)

매개변수

start
배열의 변경을 시작하는 인덱스입니다(초기 index : 0).  만약 배열 길이보다 길면 실제 시작 인덱스는 배열의 길이로 설정됩니다. 음수의 경우, 배열의 끝에서 부터 요소를 세어나가며 (초기 index : 1), 그 값의 절대값이 배열의 길이 보다 큰 경우 0으로 설정됩니다.
deleteCount
배열에서 제거를 할 요소의 수 입니다. 만약  deleteCount가 0의 경우, 아무런 요소도 제거되지 않습니다. 이경우, 최소한 하나의 새 요소를 특정해 주어야 합니다. 만약, deleteCountstart에서 부터의 남은 요소 수 보다 많을 경우, 남은 요소를 모두 제거합니다.
itemN
배열에 추가될 요소입니다. 만약 아무런 요소도 특정되지 않을 경우,  splice()는 요소를 오직 삭제만 할 것입니다.

반환 값

삭제된 요소들의 배열이 리턴됩니다. 만약 하나의 요소만이 삭제되었을 경우, 하나의 요소가 들어있는 배열이 리턴됩니다. 만약 아무런 요소도 삭제되지 않았을 경우, 빈 배열이 리턴됩니다.

설명

만약 삭제된 요소의 수와 추가된 요소의 수가 다를 경우, 배열은 처음과 다른 길이를 가지게 될 것입니다.

예시

splice() 사용하기

The following script illustrates the use of splice():

var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

// removes 0 elements from index 2, and inserts 'drum'
var removed = myFish.splice(2, 0, 'drum');
// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// removed is [], no elements removed

// removes 1 element from index 3
removed = myFish.splice(3, 1);
// myFish is ['angel', 'clown', 'drum', 'surgeon']
// removed is ['mandarin']

// removes 1 element from index 2, and inserts 'trumpet'
removed = myFish.splice(2, 1, 'trumpet');
// myFish is ['angel', 'clown', 'trumpet', 'surgeon']
// removed is ['drum']

// removes 2 elements from index 0, and inserts 'parrot', 'anemone' and 'blue'
removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// myFish is ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// removed is ['angel', 'clown']

// removes 2 elements from index 3
removed = myFish.splice(3, Number.MAX_VALUE);
// myFish is ['parrot', 'anemone', 'blue']
// removed is ['trumpet', 'surgeon']

명세

Specification Status Comment
ECMAScript 3rd Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard  

브라우저 호환성

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 1.0 (1.7 or earlier) 5.5 (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

하위 호환성

In JavaScript 1.2 the splice() method returns the element removed, if only one element is removed (deleteCount parameter is 1); otherwise, the method returns an array containing the removed elements.

Note: The last browser to use JavaScript 1.2 was Netscape Navigator 4, so you can depend on splice() always returning an array. This is the case, when a JavaScript object has a length property and a splice() method, console.log() treats it as an Array-like object. Checking with an instanceof Array on it returns false.

같이 보기

  • push() / pop() — add/remove elements from the end of the array
  • unshift() / shift() — add/remove elements from the beginning of the array
  • concat() — returns a new array comprised of this array joined with other array(s) and/or value(s)

문서 태그 및 공헌자

이 페이지의 공헌자: KisukPark, wonhoKim, laranhee, Jei, Rokt33r
최종 변경자: KisukPark,