JavaScript では、パディングが必要です。
たとえば、数字 9 がある場合、それは「0009」になります。たとえば、10 が複数ある場合は、「0010」になります。常に 4 桁の数字が含まれることに注意してください。
これを行う 1 つの方法は、その数値から 4 を引いて、必要な 0 の数を取得することです。
これをもっとうまく行う方法はありますか?
ベストアンサー1
ES2017 アップデート
内蔵のString.prototype.padStart()
n = 9;
String(n).padStart(4, '0'); // '0009'
n = 10;
String(n).padStart(4, '0'); // '0010'
今のところ、あまり「巧妙な」ことは起きていません。
function pad(n, width, z) {
z = z || '0';
n = n + '';
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}
配列を数値で初期化すると、length
その値が設定された配列が作成され、配列にはその数のundefined
要素が含まれているように見えます。一部の Array インスタンス メソッドは値のない配列要素をスキップしますが、.join()
はスキップしません (少なくとも完全にはスキップしません)。それらの要素の値が空の文字列であるかのように扱います。したがって、各配列要素の間にはゼロ文字 (または "z" が何であれ) のコピーが存在します。これが、 が存在する理由です+ 1
。
使用例:
pad(10, 4); // 0010
pad(9, 4); // 0009
pad(123, 4); // 0123
pad(10, 4, '-'); // --10