상추의 IT저장소

JS)slice(), splice() 본문

Javascript

JS)slice(), splice()

구너상추 2022. 12. 28. 16:53

slice()

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

 

사용법

slice(start, end)

 

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

  • undefined인 경우 : 0부터 slice
  • 음수를 지정한 경우 : 배열의 끝에서부터의 길이를 나타낸다. slice(-2)를 하면 배열의 마지막 2개의 요소를 추출
  • 배열의 길이와 같거나 큰 수를 지정한 경우 : 빈 배열을 반환한다.

 

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

  • 지정하지 않을 경우 : 배열의 끝까지 slice
  • 음수를 지정한 경우 : 배열의 끝에서부터의 길이를 나타낸다. slice(2 ,-1)을 하면 세번째 부터 끝까지 추출
  • 배열의 길이와 같거나 큰 수를 지정한 경우 : 배열의 끝까지 추출.
const arr = [1,2,3,4,5,6,7,8,9,10]

const arr1 = arr.slice(3,5); 
const arr2 = arr.slice(undefined, 5);
const arr3 = arr.slice(-3);			
const arr4 = arr.slice(-3, 9);			
const arr5 = arr.slice(12);		
const arr6 = arr.slice(4);		
const arr7 = arr.slice(undefined);		
const arr8 = arr.slice(5, -4);			
const arr9 = arr.slice(2, 15);		
 
 
console.log("arr :",arr);	
console.log("arr1 :",arr1);	
console.log("arr2 :",arr2);	
console.log("arr3 :",arr3);	
console.log("arr4 :",arr4);	
console.log("arr5 :",arr5);	
console.log("arr6 :",arr6);	
console.log("arr7 :",arr7);	
console.log("arr8 :",arr8);
console.log("arr9 :",arr9);

 

출력값 >>>

 

splice()

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

 

사용법

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

 

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

  • 음수를 지정한 경우 배열의 끝에서 부터 요소를 센다.
  • 배열의 길이보다 큰수를 지정한 경우 :  실제 시작 인덱스는 배열의 길이로 설정
  • 절대값이 배열의 길이보다 큰 경우 : 0으로 세팅

 

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

  • 생략 or 값이 start보다 큰 경우 : start부터 모든 요소를 제거.
  • 0이하의 수를 지정 : 어떤 요소도 제거되지 않음.

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

지정하지 않는 경우 : splice()가 요소 제거만 하게된다.

 

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

const arr1 =  arr.splice(10, 2, 'a', 'b', 'c');
// 10번째 부터 2개의 요소 제거, 'a', 'b', 'c'인자 추가

console.log("arr :", arr);
console.log("arr1 :", arr1);

출력값 >>>

 

 

 

 

 

 

참조 : https://im-developer.tistory.com/103

 

[JS/Array] slice()와 splice()의 차이점

slice()와 splice()는 배열을 다룰 때 자주 사용하는 함수이다. 두 함수는 언뜻 보기에 비슷한 기능을 하는 것처럼 보이지만 큰 차이점이 있다. [1] Array​.prototype​.slice() slice() 메소드는 begin부터 end

im-developer.tistory.com

 

'Javascript' 카테고리의 다른 글

JS) instance of 연산자  (0) 2023.01.27
JS) npm 검색&업데이트&삭제  (0) 2023.01.20
JS) express.js  (0) 2022.12.16
JS) FS 모듈  (0) 2022.12.09
JS) OS 모듈  (0) 2022.12.09