我做了一个for循环,希望能很好地对齐它。
for(var i=7;i<14; i++){ console.log( i ) }
我得到了
7
8
9
10
11
12
13
我想要
07
08
09
10
11
12
13
是否有内置方法可以做到这一点?
没有级联测试i.length=1?'0'+i:i;
)
现在我使用.toPrecision(2)
:
5.00
6.00
7.00
8.00
9.00
10.0
11.0
12.0
13.0
14.0
但它不是最理想的,因为迭代是整数,不能有“.xx”。
答案 0 :(得分:5)
您可以使用Number#toLocaleString使用正确的选项。
var i;
for (i = 7; i < 14; i++) {
console.log(i.toLocaleString(undefined, { minimumIntegerDigits: 2 }))
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:3)
连接"00"
和您的号码,并使用带有负数的String.slice
。
for (var i = 7; i < 14; i++) {
console.log(("00" + i).slice(-2));
}
将来的某个时候,您可以使用String.padStart
进行此类操作:
for (var i = 7; i < 14; i++) {
console.log(i.toString().padStart(2, "0"));
}
答案 2 :(得分:2)
您可以使用String.prototype.padStart(),如果它不是原生的,您可以添加其填充,请参阅以下内容:
if (!String.prototype.padStart) {
String.prototype.padStart = function padStart(targetLength,padString) {
targetLength = targetLength>>0; //floor if number or convert non-number to 0;
padString = String(padString || ' ');
if (this.length > targetLength) {
return String(this);
}
else {
targetLength = targetLength-this.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
}
return padString.slice(0,targetLength) + String(this);
}
};
}
for (var i = 7; i < 14; i++) {
console.log(new String(i).padStart(2, '0'));
}
&#13;
我希望它可以帮助你,再见。
答案 3 :(得分:1)
for(var i = 7; i < 14; i++){
console.log(prependZero(i));
}
function prependZero(number) {
if (number < 10 && number >= 0) {
number = '0' + number;
}
return number;
}
答案 4 :(得分:0)
检查此代码。这是建立在功能
<script>
for (var i = 7; i < 14; i++) {
console.log(i.toString().padStart(2, "0"));
}
</script>
输出:
07
08
09
10
11
12
13
你也可以使用切片
for (var i = 7; i < 14; i++) {
console.log(("00" + i).slice(-2));
}
如果您使用切片和数字&gt; 100
for (var i = 99; i < 104; i++) {
console.log(("00" + i).slice(-3));
}