본문 바로가기

자바스크립트

slice()와 splice()

slice()는 처음부터 끝 전까지의 복사본을 새로운 배열 객체로 반환한다. 원복배열은 수정되지 않는다.

slice(start,[end])

-start 추출 시작점에 대한 인덱스

  -undefined 인경우 :0부터 slice

  -음수를 지정한 경우 :배열의 끝에서부터의 길이를 나타냄. slice(-2)는 배열의 마지막 2개 요소 추출

  -배열의 길이와 같거나 큰 수를 지정한 경우 : 빈배열

 -end: 추출을 종료할 기준 인덱스. (end를 제외하고 그 전까지의 요소만)

   - 지정하지 않을 경우: 배열의 끝까지 slice

   - 음수: 배열의 끝에서부터의 길이.  slice(2, -1)하면 세번째 부터 끝에서 끝에서 두번째 요소까지 추출.

   - 배열의 길이와 같거나 큰 수를 지정한 경우 : 배열의 끝까지 추출.

 -반환값 : 추출한 요소를 포함한 새로운 배열.

 

var arr = [1,2,3,4,5,6,7.8.9.10]

 

var arr1 = arr.slice(3,5);  4,5

var arr2 = arr.slice(undefined, 5); 12345

var arr3 = arr.slice(-3) 8910

var arr4 = arr.slice(-3,9) 89

var arr5 = arr.slice(10); []

var arr6 = arr.slice(4); 5678910

var arr7 = arr.slice(undefined); 12345678910

var arr8 = arr.slice(5,,-4)     6

var arr9 = arr,slice(2,15) 2345678910                             

 

splice(): 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다. 원본 배열 자체를 수정한다.

 

splice(start,[deleteCount[,item1[item2[]]]])

start:배열의 변경을 시작할 인덱스

 -음수를 지정한 경우: 배열의 끝에서부터 요소를 센다

 -배열의 길이보다 큰수 : 실제 시작 인덱스는 배열의 길이로 설정

 -절대값이 배열의 길이보다 큰경우 :0으로 셋팅

 

deleteCount: 배열에서 제거할 요소의 수

 -생략: 값이 array.length -start 보다 큰 경우: start 부터의 모든 요소를 제거

 -0이하의 수 : 어떤 요소도 제거되지 않는다.

 

item1,item2: 배열에 추가할 요소

 -지정하지 않는 경우: splice()는 요소 제거만 수행한다.

 

반환값: 제거한 요소를 다음 배열

 

var arr = [1,2,3,4,5,6,7,8,9,10,11,12];

var arr1 = arr.splice(10,2,'a','b','c');

console.log(arr); 123456678910 a bc 

console.log(arr1); 11 12

 

 

var arr = [1,2,3,4,5,6,7,8,9,10,11,12];

var arr1 =arr.splice(-6,4);

console.log(arr)  123456 11 12   뒤엣 ㅓ6번째부터인 7부터 4개 요소 삭제

console.log(arr1) 78910

 

var arr = [1,2,3,4,5,6,7,8,9,10,11,12];

var arr1 = arr.splice(-13,1);  절대 값이 배열의 길이보다 크면 0으로 셋팅, 0번째 요소 1개의 요소를 삭제함으로 23456789101112

console.log(arr1) 1

 

var arr = [1,2,3,4,5,6,7,8,9,10,11,12];

var arr1 = arr.splice(3);

console.log(arr) 123 지정한 곳부터 끝까지 모두제거

console.log(456789101112

 

var arr2 = arr.splice(6,4) 

console.log(arr1) 456789

console.log(arr2) 10 11 12 

 

var arr = [1,2,3,4,5,6,7,8,9,10,11,12];

var arr1 = arr.splice(5,0,'add');

console.log(arr); 12345 add 6789101112

console.log(arr1); []

deleteCount 가 0이거나 0보다 작은 수이면 어떤 요소도 삭제되지 않는다.

 

                                                                                                                                                                                                                                                              

'자바스크립트' 카테고리의 다른 글

JS Live(라이브) Collection vs Static(정적) Collection  (0) 2020.06.09
JS Toggle  (0) 2020.06.09
JS DOM  (0) 2020.06.08
JS 생성자 함수, 프로토타입 체인  (0) 2020.06.08
JS this!!!!  (0) 2020.06.04