例如。我想打印1到20之间的数字
但我希望打印1为01
,2为02
等等。
答案 0 :(得分:3)
formatNumber = function( num )
{
if ( num < 10 )
{
return "0" + num;
}
else
{
return "" + num;
}
}
答案 1 :(得分:3)
这是一个通用的'zeroPad'功能:
function zeroPad(nr,base){
base = base || 10;
var len = (String(base).length - String(nr).length)+1;
return len > 0 ? new Array(len).join('0')+nr : nr;
}
//usage
zeroPad(5); //=> "05"
zeroPad(50,1000); //=> "0050"
zeroPad(50); //=> "50"
或作为号码扩展:
Number.prototype.zeroPad = Number.prototype.zeroPad ||
function(base){
base = base || 10;
var len = (String(base).length - String(this).length)+1;
return len > 0 ? new Array(len).join('0')+this : this;
};
//usage
(5).zeroPad(); //=> "05"
(50).zeroPad(1000); //=> "0050"
(50).zeroPad(); //=> "50"
答案 2 :(得分:2)
让我们滥用三元运算符:
for(var n = 1; n <= 20; n++) {
console.log((n < 10 ? '0' : '') + n)
}
答案 3 :(得分:2)
这是更短的版本:
leadingZero = function(num){
return (num < 10) ? "0"+num : num;
}
答案 4 :(得分:0)
使用String.prototype.padStart
:
`${num}`.padStart(2, '0');
来自MDN:
padStart()
方法用另一个字符串填充当前字符串(如果需要,重复),以便生成的字符串达到给定长度。填充从当前字符串的开头(左侧)开始应用。
padStart
仅在字符串而非数字上定义 - 因此您需要在致电num.toString()
之前将数字转换为字符串(`${num}`
;或更具惯用语padStart
) 。第一个参数是结果字符串的最小长度,因此,如果您的数字达到数百个`${num}`.padStart(3, '0')
。
// Create an array of the numbers 1 through 20.
const arr = Array.from({ length: 20 }, (_, i) => i + 1);
arr.forEach(i => {
// Pad each one digit number with a leading zero.
console.log(`${i}`.padStart(2, '0'));
})
&#13;