[Programmers] JavaScript 잘라서 배열로 저장하기

Kim Joy·2023년 2월 13일
1

Programmers 장인

목록 보기
45/67

잘라서 배열로 저장하기

문제 설명

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

입출력 예

풀이

처음에 작성한 코드

function solution(my_str, n) {
    
    let array = []

    for(i=0;i<my_str.length;i+=n) {
        array.push(my_str.slice(i,n))
    }
    return array;

}

수정한 코드

function solution(my_str, n) {
    
    let array = []

    for(i=0;i<my_str.length;i+=n) {
        array.push(my_str.slice(i,i+n))
    }
    return array;

}

차이점은 for문 안의 slice부분이다.
예를들어서 n이 3이라고 가정했을때,
처음에 작성한 코드는
my_str.slice(0,3)
my_str.slice(3,3)
my_str.slice(6,3)
이렇게 되기에 처음으로 반환되는 배열말고는 값이 나오지 않는다.

하지만 수정한 코드는
my_str.slice(0,0+3)
my_str.slice(3,3+3)
my_str.slice(6,6+3)
...
이렇게 되기에 모든 값들이 적절하게 반환 될 수 있다.

또 다른 풀이

function solution(my_str, n) {
    
    let array = []

    for(i=0;i<my_str.length;i+=n) {
        array.push(my_str.substr(i,n))
    }
    
    return array;

}

substr()는 특정 index에서 원하는 길이만큼 잘라서 문자열로 리턴이 가능하다.
예를 들어,
let str = 'KimLeePark'
str.substr(0,3); //0번째 인덱스부터 길이 3만큼 Kim 출력
str.substr(3,3); //3번째 인덱스부터 길이 3만큼 Lee 출력

profile
javascript 공부하는 코딩어린이

0개의 댓글