:ledger: slice 메서드란?

slice 메서드는 JavaScript에서 배열이나 문자열에서 특정 범위의 요소를 복사하여 새 배열이나 문자열을 생성하는 메서드이다.
이 메서드는 두 개의 매개변수를 받으며, 각각 시작 인덱스와 끝 인덱스를 의미한다.
끝의 인덱스는 선택 사항이며, 제공하지 않으면 시작 인덱스부터 끝까지의 모든 요소를 포함한다.

:one: slice 메서드 사용법

splice 메서드의 기본 사용법은 다음과 같다.

// 배열
array.slice(start, end)

// 문자열
string.slice(start, end)
  • start : 복사를 시작할 인덱스 (포함)
  • end : 복사를 끝낼 인덱스 (포함되지 않음, 선택사항)

:two: slice 메서드는 실무에서 언제 사용하는가?

:pushpin: 2-1) 데이터 복사

배열이나 문자열의 일부를 복사하여 새로운 배열이나 문자를 생성할 때 유용하다.
예) 쇼핑몰 장바구니에서 옵션을 변경할 때, 기존 데이터에서 변경할 옵션만 변경

let cartItem = ['item1', 'item2', 'item3'],
    cartItemCopy = cartItem.slice(); // 전체 배열을 복사

cartItemCopy.push('item4'); // ['item1', 'item2', 'item3', 'item4']
console.log(cartItem); // ['item1', 'item2', 'item3']
console.log(cartItemCopy); // ['item1', 'item2', 'item3', 'item4']

:pushpin: 2-2) 문자열 처리

게시물의 컨텐츠가 리스트에서 미리 노출되어야 할 경우 사용하면 좋을 것 같다.
예) 게시물의 상세 페이지에서 텍스트를 가져와서 미리 보여주는 형식

let postText = "welcome rarrit blog ....................",
    postTextSlice = postText.slice(0,19); 

console.log(postText); // "Welcome rarrit blog"

:three: slice 메서드 예제

:pushpin: 3-1) 배열에서 사용

변수 name의 원본 배열을 변경하지 않고 인덱스 0부터 3까지의 배열을 출력한다.

let name = ["r", "a", "r", "r", "i", "t"],
    nameSlice = name(0,4);

console.log(nameSlice); // ["r", "a", "r", "r"]
console.log(name); // ["r", "a", "r", "r", "i", "t"]

:pushpin: 3-2) 문자열에서 사용

변수 msg 의 값 중 “blog!”를 추출하여 출력한다.

let msg = "rarrit, blog!",
    msgSlice = msg.slice(7, 13);

console.log(msg); // "blog!"

:pushpin: 3-2) 끝 인덱스를 생략

인덱스 3부터 끝까지의 모든 요소를 추출한다.

let numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
    numberSlice = numbers.slice(3);

console.log(numberSlice); // [4,5,6,7,8,9,10,11,12,13,14,15]
console.log(mumbers); // [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
    

:fire: 마무리

slice 메서드는 배열과 문자열에서 특정 범위 요소를 추출하여 새로운 배열이나 문자열을 생성하는데 편리한 메서드다.
원본 데이터를 변경하지 않고 필요한 부분만 수정할 수 있어서 다양하게 활용될 것 같다.
프로그래머스 코딩 테스트에서도 사용할 기회가 있으면 좋겠다.

태그:

카테고리: ,

업데이트: