ゼロパディングとは?超初心者のJavascriptの勉強

2020-04-05

ゼロサプレスと同様ゼロパディングという言葉を耳にしたので調べてみました。

ゼロパディングとは

ゼロパディング( Zero padding )とは、「ゼロ詰め」という意味です。
例えば「1」と「238」という数字が混在していて桁数を揃えたいときに「1」を「001」とすることをゼロパディングといいます。

Javascriptでゼロパディングしてみる

せっかくなのでゼロパディングを実際にJavascriptでできるようになりたいと思います。

少し調べてみたところゼロパディングは自分でメソッドを作成する必要があるようです。

例 1

4桁に揃える(ゼロパディングする)ためのメソッド例です。

※以下functionの実行はabout:blankなどで実行してみると結果がすぐわかるように全てconsole.log()内にいれています。

function padToFour(number) {
if (number<=9999) {
number = ("000"+number).slice(-4);
}
return number;
}
console.log(padToFour(9)); // 0009
console.log(padToFour(407)); // 0407

"000"+numberは数字の「+」ではなく文字としての「+」なので000に引数のnumberを追加しています。そのため「0009」、「000407」となります。
.slice(-4)で後ろから4つ数字を切り取っています。
※ちなみに.slice(4)だと前から数字を4つ切り取ります。

理解できれば何桁でも作れそうです。

例 2

任意の桁に揃える(ゼロパディングする)ためのメソッド例です。

function pad ( num, size ) {
if (num.toString().length >= size) return num;
return ( Math.pow( 10, size ) + Math.floor(num) ).toString().substring( 1 );
}
console.log(pad(4, 5)); //00004
console.log(pad(346, 5)); // 00346

例 3

任意の桁に揃える(ゼロパディングする)ためのメソッド例です。例2と似ています。

function padDigits(number, digits) {
return Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;
}
console.log(padDigits(5, 4)); //0005
console.log(padDigits(248, 4)); //0248

以下サイトでは他にもいろいろな方法があるようです。

参考サイト:Pad a number with leading zeros in JavaScript [duplicate]