자바스크립트 코드를 작성하다 보면 배열을 이용하는 경우가 많은데, 늘 splice와 slice 메소드가 헷갈린다. 이번 기회에 정리해두려 한다.
1. Array.prototype.splice
기존 배열을 변형하는 메소드다.
Array.prototype. splice (start, deleteCount, items...) |
배열의 start번째부터 deleteCount개 만큼의 요소를 '제거'한 다음, 그 자리에 items를 '삽입'한다. '제거'된 요소의 배열을 리턴한다.
const array = [1, 2, 3, 4, 5, 6];
array.splice(0, 1); // [ 1 ]
console.log(array); // [ 2, 3, 4, 5, 6 ]
array.splice(3,1); // [ 5 ]
console.log(array); // [ 2, 3, 4, 6 ]
array.splice(0,2); // [ 2, 3 ]
console.log(array); // [ 4, 6 ]
array.splice(1, 0, 'a', 'b', 'c', 'd'); // []
console.log(array); // [ 4, 'a', 'b', 'c', 'd', 6 ]
2. Array.prototype.slice
기존 배열을 변형하지 않고 기존 요소를 참조하는(얕은 복사) 새로운 배열을 만들어 리턴하는 함수다.
Array.prototype. slice (begin, end ) |
배열의 begin번째 요소부터 end번째 요소까지의 값을 참조하는 새로운 배열을 만들어 리턴한다
const array = [1, 2, 3, 4, 5, 6];
array.slice(4); // [5, 6]
console.log(array); // [1, 2, 3, 4, 5, 6]
array.slice(1, 4); // [2, 3, 4]
array.slice(3, 5); // [4, 5] array.slice(); // [1, 2, 3, 4, 5, 6]
'ECMAScript | TypeScript' 카테고리의 다른 글
ECMAScript6, Generator Function (0) | 2018.05.13 |
---|---|
스타일시트(CSS), 스크립트(Script) 동적으로 추가/제거하기 (0) | 2017.11.07 |
ECMAScript 5.1로 만든 조합(Combination) 함수 (0) | 2017.09.13 |
ESCMAScript, Proxy와 Proxy Handler (0) | 2017.09.11 |
ECMAScript, 딕셔너리와 Map (0) | 2017.08.21 |