Header

[ JAVASCRIPT / JS ] slice()와 splice()

[ JavaScript / JS ] slice()와 splice()에 관하여





















Array​.prototype​.slice()



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

slice(start[, end])

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

undefined인 경우: 0부터 slice한다.

음수를 지정한 경우: 배열의 끝에서부터의 길이를 나타낸다.

slice(-2)를 하면 배열의 마지막 2개의 요소를 추출한다.

배열의 길이와 같거나 큰 수를 지정한 경우: 빈 배열을 반환한다.
 

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

지정하지 않을 경우: 배열의 끝까지 slice
음수를 지정한 경우: 배열의 끝에서부터의 길이를 나타낸다. 
 
반환값: 추출한 요소를 포함한 새로운 배열.


코드

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); // []


Array​.prototype​.splice()



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

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

     

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

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

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

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

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

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

    반환값: 제거한 요소를 담은 배열.

    아무 값도 제거하지 않았으면 빈 배열을 반환한다.


    댓글 쓰기

    0 댓글