TIL/개인 TIL

TIL :: 자바스크립트 Slice Method

두캔두잇 2023. 10. 1. 23:53

코드를 작성하다가 오랜만에 JS 배열 메서드중 하나인 Slice() 메서드를 사용해봤다.

이 메서드를 사용하는 목적은 특정 부분을 잘라서 새로운 배열 형태로 나타나기 위함인데, Slice 메서드에는 두 매개변수가 필요하다.

 

1. 시작 Index    2. 종료 Index 

우선 예제를 통해 간단하게 설명해보겠다.

예제

array 라는 변수를 만들어서 배열형태로 만들어 보았는데 slice 메서드를 통해 파라미터(1,3) 을 주었다. 

배열의 인덱스는 0부터 시작하는데 위의 방법으로는 1~3까지의 인덱스 값들을 가지고 온다는 뜻이여서 결과값이 [2,3,4] 가 나올것이라고 나는 예상을 했다. 그리고 터미널을 통해 실제 결과값을 확인해보면,

터미널 결과

[2,3] 배열만 나온것을 볼 수 있는데, 이 이유는 너무도 간단했다. 오랜만에 사용해서 그런지 잠시 잊었던것 같다..이래서 자주 사용하며 그 감을 익숙하게 만들어야 하는것 같다.

아무튼 그 이유는, Slice 메서드에 파라미터로 1,3 을 주었는데  1 = 시작 인덱스 , 3 = 종료 인덱스 인데,

종료 인덱스에서는 그 종료 인덱스 전까지만 잘라내기 때문이다. 그렇기 때문에 3번째 인덱스 전까지인 [2,3] 까지만 출력되는것이다.

 

그럼 어떻게 해야 원하는 기댓값들을 다 가지고 올 수 있을까 ? 

진짜 진짜 간단하다.

2번째 파라미터에서 +1 을 해주면됨
결과

이렇게 종료 인덱스쪽에 + 1 을 해주면 끝이다...정말 간단하다. 그래서 내가 원하는 값을 가져오기 위해서는 "종료 인덱스에 + 1" 만 해주면 간단히 해결된다. 그러면 예외로 저렇게 숫자말고 다른 형태로 나와있으면 어떻하지...? 라는 상황을 만날 수도 있을건데, 

프로그래머스  배열 자르기 문제를 예시로 들겠다.

 

프로그래머스 배열 자르기 문제

이 문제를 보면 답을 적는 곳에 기본적으로 코드가,

이렇게 적혀있는것을 볼 수 있다.

이 문제를 그렇게 어렵지 않아서 쉽게 접근할 수 있는데, 문제가 numbers 의 num1 번째 인덱스부터 num2 번째 인덱스 까지 자른 정수배열을 return 하라고 했으니까, return 하는 곳 위쪽에 

answer = numbers 의 slice를 해야하니 slice에 파라미터로 num1 , num2 를 주고, 위에서 설명 한 것처럼 num2만 주면 그 전까지 결과값을 가져오니 + 1 을 하면 완성이 된다.

결과

이렇게 작성하고 코드 실행을 눌려서 확인을 해보면 잘 작동하는 것을 볼 수 있다.

결과