Array.prototype.slice(start, end)
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); // [1, 2, 3, 4, 5]
var arr3 = arr.slice(-3); // [8, 9, 10]
var arr4 = arr.slice(-3, 9); // [8, 9]
var arr5 = arr.slice(10); // [] 배열길이를 벗어나면 빈배열 반환
var arr6 = arr.slice(4); // [5, 6, 7, 8, 9, 10]
var arr7 = arr.slice(undefined); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var arr8 = arr.slice(5, -4); // [6]
var arr9 = arr.slice(2, 15); // [3, 4, 5, 6, 7, 8, 9, 10]
// slice()는 얉은 복사를 하기 때문에 원본배열 arr에 영향 미치지 않는 배열
// 메서드에 전달인자가 하나라면 시작점이다.
// 끝점은 포함하지 않는다.
Array.prototype.splice(start, deleteCount, 배열에 추가할 요소)
예제1)
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);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "a", "b", "c"]
console.log(arr1);
// [11, 12]
// 원본배열 : splice 결과에 따라 원본배열이 변경되고,
// splice를 진행한 배열: 원본배열에서 삭제된 요소가 담긴다.
예제2)
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
var arr1 = arr.splice(-6, 4);
console.log(arr); // [1, 2, 3, 4, 5, 6, 11, 12]
console.log(arr1); // [7, 8, 9, 10]
예제3)
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
var arr1 = arr.splice(-13, 1);
console.log(arr); // [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
console.log(arr1); // [1]
// -13이 배열의 길이를 넘어가므로 0으로 세팅
// arr.splice(0,1) 을 수행해서 원본배열의 1개 요소가 삭제됨
왠만하면,
정말 필요한 상황이 아니면,