[자바스크립트] repeat 함수로 문자열 거듭 넣기 (+ 자릿수 맞추어 숫자 나타내기)

  'ggggg'나 'AbcAbcAbc'처럼 같은 문자나 문자열을 여러 번 더하여 나타내는 방법은 다음 몇 가지가 있다.

str = 'aaaaa…';   // 문자열을 그대로 넣기 
for( i=0; i<n; ++n ) str += 'a';   // 반복문과 '+' 연산자 쓰기
str = 'a'.repeat(n);   // repeat 함수 쓰기

  문자열을 그대로 넣는 방법은 거듭 넣는 횟수가 많거나 다양할수록 번거로울 수 있다. 반복문과 '+' 연산자를 쓰거나 repeat 함수를 쓰면 거듭 넣는 횟수를 조절하기 좋은데, repeat 함수를 쓰는 것이 간결하면서 고치기도 편한 꼴이다.

(1) 형식

String.prototype.repeat(count)
  • String : 거듭 더할 문자열
  • count : 문자열을 거듭 덧붙이는 횟수

(2) 보기 ① - 문자 또는 문자열을 거듭하여 넣기

var str1 = 'g'.repeat(0);
var str2 = 'g'.repeat(5);
var str3 = ' '.repeat(5);
var str4 = 'Abc'.repeat(3);
var str5 = str4.repeat(2);

console.log( '"' + str1 + '"' );
console.log( '"' + str2 + '"' );
console.log( '"' + str3 + '"' );
console.log( '"' + str4 + '"' );
console.log( '"' + str5 + '"' );

▣ 출력 결과

""
"ggggg"
" "
"AbcAbcAbc"
"AbcAbcAbcAbcAbcAbc"

  repeat 함수 인자에 0을 넣으면 빈 문자열을 돌려준다.

 

(3) 보기 ② - 자릿수 맞추어 숫자 나타내기

  고정폭 글꼴을 써서 숫자를 일정한 너비에 자릿수를 맞추어 나타낼 때에도 repeat 함수를 쓸 수 있다.

var nums =  [ 1, 3, 14, 150, 7382, 23831 ];
var i, max_length = 0;
for (i=0; i<nums.length; ++i) {
if (nums[i].toString(10).length > max_length) {
max_length = nums[i].toString(10).length;
}
}

for (i=0; i<nums.length; ++i) {
num = nums[i];
num_str = ' '.repeat(max_length - num.toString(10).length) + num.toString(10);
console.log( '"' + num_str + '"' );
}

▣ 출력 결과

"    1"
" 3"
" 14"
" 150"
" 7382"
"23831"

  max_length에 10진수 기준으로 자릿수가 가장 긴 숫자의 길이가 들어간다. toString(10) 함수는 수가 들어간 변수값을 10진수로 바꾼 문자열로 바꾸어 준다. 여기에서 repeat 함수는 숫자를 나타내는 문자열들의 길이가 모두 같도록 10진수 기준 숫자 길이에 따라 공백 문자 ' '를 붙이는 구실을 한다.

 

글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요