gpt4 book ai didi

javascript - 长度较小时加零

转载 作者:行者123 更新时间:2023-11-30 07:11:38 24 4
gpt4 key购买 nike

有没有一种聪明的方法可以将数字转换为字符串并自动添加零以使长度与最大值相同?

像这样:

for (var i=0; i<30; i++) {
var c = i.toString();
if (c.length == 1) {
c = '0'+=c;
}
}

但更聪明

最佳答案

有一百万种方法,这是其中一种,而且它实际上也非常有效..

更新 2这是“对 OP 问题的第三种解释”的代码

这将输出 ["00", "01", "02"....,"30"]

var max = 30, i = max, maxLength = max.toString().length, num,  zeroes=[];
while (i--) zeroes.push("0");
zeroes = zeroes.join();

for (i=0; i < max ; i++) {
num = i.toString();
console.log(zeroes.substring(0, maxLength - num.length) + num);
}

UPDATE 1 针对 OP 问题的两种“可能”解释修改了代码。

如果您想要的是基于 n=5 的代码,max = 30 产生 29 个“0”后跟“5”,那么这就是您想要的代码

var n = 5, max = 30;

var a = n.toString().split(), zeroesToAdd = max - a.length;
while(zeroesToAdd--) a.unshift("0");
var num = a.join("");

alert(num);​

如果您想要的是基于 n=5 的代码,max = 30 产生 2(30.toString() 的长度)“0”后跟“5”,那么这就是您想要的代码

var n = 5, maxLength = (30).toString().length;

var a = n.toString().split(), zeroesToAdd = maxLength - a.length;
while(zeroesToAdd--) a.unshift("0");
var num = a.join("");

alert(num);​

这里唯一的区别在于第一行。

这些不使用字符串连接(效率极低),而是使用 Array.unshiftArray.join

关于javascript - 长度较小时加零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com