Edited at

指定した文字を繰り返す。また数値のゼロ埋めを行う

More than 1 year has passed since last update.


指定した文字を繰り返す

短いのでとりあえずサンプルコードを見たら一目瞭然かもしれません。


1.指定した文字を繰り返す

var _len = 3; //繰り返し文字の回数(※文字列長ではなく繰り返し数であることに注意)

var _str = "FizzBuzz_"; //繰り返す文字列

console.log( Array(_len+1).join(_str) ); // 出力:FizzBuzz_FizzBuzz_FizzBuzz_



解説


1-1.指定長の配列を作る

Array(_len+1)


指定長の配列を作ります。値はすべてundefinedになります。

なぜ+1しているかというと……


1-2.連結した文字列を返す

join(_str)


で文字列連結によって文字の繰り返しを行っているので、繰り返したい回数+1の配列が必要というすんぽう。

undefinedはjoinを行った時に空文字列になるので結合文字列だけが残ります。


数値のゼロ埋めをする

結果は数値ではなく文字列です。


2.数値のゼロ埋めをする

var _len = 6; //0埋めする桁数

var _val = 123; //0埋めしたい数値

console.log( (Array(_len+1).join("0")+_val).slice(-_len) ); // 出力:000123



解説


2-1.数値の先頭に"0"をくっつけて文字列化

Array(_len+1).join("0")+_val


まず指定文字の繰り返しで連続した"0"の文字列を作って数値と結合します。

この時点で文字列になります。


2-2.文字列の切り出し

slice(-_len)


負の数を指定すると末尾からの切り出しになるので、余分な "0" は切り取られます。