ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • slice() / splice() / 수도코드의 중요성 / 로직
    Topic/JavaScript 2021. 11. 22. 22:22
    반응형

    Array​..slice()  

    slice() 메소드는 start부터 end 전까지의 복사본을 새로운 배열 객체로 반환한다.

    즉, 원본 배열은 수정되지 않는다.

     

    slice(start, end)

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

     

    end: 추출을 종료할 기준 인덱스. (end를 제외하고 그 전까지의 요소만 추출.)
    지정하지 않을 경우: 배열의 끝까지 slice
    음수를 지정한 경우: 배열의 끝에서부터의 길이. slice(2, -1)를 하면 세번째부터 끝에서 두번째 요소까지 추출
    배열의 길이와 같거나 큰 수를 지정한 경우: 배열의 끝까지 추출.

     

    반환값 -> 추출한 요소를 포함한 새로운 배열.


    Array​..splice()  

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

     

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

     

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

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

     

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

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

     

     

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

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

     

    반환값: 제거한 요소를 담은 배열. --> 제거값이 없으면 빈 배열을 반환한다.


    인자를 하나만 입력했을 때는 동일하게 추출

    ex) array.splice(n); / array.slice(n);
    splice는 추출한 만큼 원본배열의 원소가 사라짐
    slice는 원본 배열의 변화 없음

    메쏘드의 인자를 2개 넣은경우 '끝' 인덱스의 차이

    splice, slice 모두 추출할 배열의 처음과 끝 인덱스를 지정 가능
    ex) array.splice(1, 5); /  array.slice(1, 5);

    위 예시의 경우는 ? 

    splice는 1번 인덱스부터 '총 5개' 추출함 
    slice는 1번 인덱스부터 5번 인덱스'직전까지' 추출함(총 4개)

    구별하기 쉽지 않은 경우인데, 다른 방식으로 정리한다면 ..
    splice는 slice보다 철자가 한 글자 더 많다. 그래서 시작부터 끝까지 총 5개를 추출
    slice는 반대로 한 글자가 적기 때문에 시작부터 끝 바로 전까지 총 4개를 추출


     

    반응형
Designed by LEO.