Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트로 문자열의 각 문자 n번 반복하기


문자열과 숫자 n을 입력받아, 원본 문자열의 모든 글자를 n번씩 반복한 새로운 문자열을 반환하는 자바스크립트 함수를 작성해야 합니다.

문제 이해하기

예를 들어, 입력 문자열이 다음과 같다고 가정해 보겠습니다.

const str = 'how are you'

여기서 n 값이 2라면, 최종 출력 결과는 아래와 같아야 합니다.

const output = 'hhooww  aarree  yyoouu'

즉, 공백을 포함한 모든 문자가 각각 두 번씩 반복됩니다.

구현 예제

다음은 위 문제를 해결하는 전체 코드입니다.

const str = 'how are you';
const repeatNTimes = (str, n) => {
    let res = '';
    for(let i = 0; i < str.length; i++){
        // String.prototype.repeat() 함수 활용
        res += str[i].repeat(n);
    }
    return res;
};
console.log(repeatNTimes(str, 2));

코드 설명

이 함수는 for 루프를 통해 문자열의 각 문자를 순서대로 순회합니다. 각 문자마다 ES6에서 도입된 String.prototype.repeat() 메서드를 호출해 해당 문자를 n번 반복한 뒤, 누적 변수 res에 이어 붙이고 최종적으로 반환합니다.

repeat(count) 메서드는 호출한 문자열을 count 횟수만큼 반복한 새로운 문자열을 돌려주며, count가 0이면 빈 문자열을 반환합니다.

대안: split(), map(), join() 활용

같은 동작을 더 간결하고 선언적인 스타일로 구현할 수도 있습니다.

const repeatNTimes = (str, n) =>
  str.split('').map(ch => ch.repeat(n)).join('');

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다.

hhooww  aarree  yyoouu