Salangdung_i의 기록

JS코딩테스트 준비 - splice / slice 본문

WEB FRONT END/JS코딩테스트

JS코딩테스트 준비 - splice / slice

Salangdung_i 2022. 3. 7. 09:44
728x90

코딩테스트를 준비하면서 자주나오거나, 알아두어야 할 함수들을 정리해보았다.

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

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

[매개변수]

start는 배열의 변경을 시작할 인덱스
deleteCount는 배열에서 제거할 요소의 수
item1, item2, ... 는 배열에 추가할 요소이다. 아무 요소도 지정하지 않으면 splice() 요소를 제거하면된다.

[예시]

let fruits = ['🍎', '🍏', '🍌', '🍓'];
fruits.splice(0, 1, '🍇');
console.log(fruits);                  // 출력 결과 : ['🍇', '🍏', '🍌', '🍓']

[정의]

slice() 메서드는 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환한다. 원본 배열은 바뀌지 않는다.

arr.slice([begin[, end]])

[매개변수]

begin는 새로운 배열 객체로 반환할 기존배열의 추출 시작 인덱스
end는 추출을 종료 할 0 기준 인덱스. 생략할경우 배열의 끝까지 추출한다. 

[예시]

let fruits = ['🍎', '🍏', '🍌', '🍓'];
let slicefruits = fruits.slice(0, 1);
console.log(slicefruits);             // 출력 결과 : ['🍎']
console.log(fruits);                  // 출력 결과 : ['🍎', '🍏', '🍌', '🍓']

 

이 둘의 차이점은 원본배열의 변경하느냐의 차이이다. splice는 기존 배열을 변경하고, slice는 기존배열을 변경하지 않고 새로운 배열 객체로 반환한다. 

"Icon made by Pixel perfect from www.flaticon.com"

728x90