문제
문자열과 숫자를 두 개의 인수로 받는 JavaScript 함수를 작성해야 합니다.
이 함수는 첫 번째 인수로 전달된 문자열을 두 번째 인수로 지정된 횟수만큼 반복한 뒤, 반복된 결과 문자열을 반환해야 합니다.
접근 방법
가장 간단한 방법은 배열을 활용하는 것입니다. 먼저 배열에 원본 문자열을 담고, 지정된 횟수만큼 같은 문자열을 추가한 후 join() 메서드로 하나의 문자열로 합치면 됩니다.
예제 코드
다음은 구현 예시입니다 −
const str = 'this';
const num = 8;
const repeatSpecificTimes = (str = '', num = 1) => {
const arr = [str];
let i = 1;
while(i < num){
arr.push(arr[0]);
i++;
};
return arr.join('');
};
console.log(repeatSpecificTimes(str, num));
출력
thisthisthisthisthisthisthisthis
코드 설명
위 코드는 다음과 같은 순서로 동작합니다.
먼저 원본 문자열을 요소로 가지는 배열을 생성하고, 카운터 변수 i를 1로 초기화합니다. 이후 i가 목표 횟수 num에 도달할 때까지 while 루프를 돌며 배열에 동일한 문자열을 계속 추가합니다. 마지막으로 join('')을 호출해 배열의 모든 요소를 구분자 없이 하나의 문자열로 연결하여 반환합니다.
더 간단한 대안: repeat() 메서드
ES6(ES2015)부터는 문자열 내장 메서드인 String.prototype.repeat()를 사용하면 위 과정을 한 줄로 처리할 수 있습니다.
console.log(str.repeat(num)); // thisthisthisthisthisthisthisthis
실무 환경이라면 별도의 반복 로직을 작성하기보다 repeat() 메서드를 사용하는 것이 가독성과 성능 면에서 더 유리합니다.