Javascript添加前导零可用于while循环,但不能用于for循环
我从字符串中提取数字并将其传递给函数。我想向它添加1,然后返回字符串,同时保留前导零。我可以使用while循环,但不能使用for循环。for循环只是跳过零Javascript添加前导零可用于while循环,但不能用于for循环,javascript,loops,Javascript,Loops,我从字符串中提取数字并将其传递给函数。我想向它添加1,然后返回字符串,同时保留前导零。我可以使用while循环,但不能使用for循环。for循环只是跳过零 var addMoreZeros = (numStr)=> { let newNumStr = (parseInt(numStr)+1).toString(); let zerosToAdd = numStr.length - newNumStr.length; let zeroPadStr = "";
var addMoreZeros = (numStr)=> {
let newNumStr = (parseInt(numStr)+1).toString();
let zerosToAdd = numStr.length - newNumStr.length;
let zeroPadStr = "";
let i = 0;
while (i < zerosToAdd) {
zeroPadStr += "0";
i++;
}
//This doesn't work
//for(let i = 0; i++; i < zerosToAdd) {
// zeroPadStr+="0";
//}
return zeroPadStr + newNumStr;
}
var addMoreZeros=(numStr)=>{
让newNumStr=(parseInt(numStr)+1.toString();
设zerosToAdd=numStr.length-newNumStr.length;
设zeroPadStr=“”;
设i=0;
while(i
替代方法(而不是使用for/while):
var addMoreZeros=(numStr,numLength=numStr.length)=>`${++numStr}`.padStart(numLength,'0');
//用法示例
console.log(addMoreZeros(“124”,5))代码>您的for循环语法错误,应该是:
(初始值设定项;条件;递增/递减)
因此:
for(设i=0;i
var addMoreZeros=(numStr)=>{
让newNumStr=(parseInt(numStr)+1.toString();
设zerosToAdd=numStr.length-newNumStr.length;
设zeroPadStr=“”;
for(设i=0;i console.log(addmorezores(“00125”))
for(让i=0;i
。另外,请注意,对于
@MarcoBonelli的不需要声明两次i
——我假设初始设i=0
是而解决方案的一部分。哈,是的,谢谢你指出这一点。是的,我只是在控制台中进行了测试。仅供参考:零填充可能更简单,没有循环。@hindmost谢谢。(numStr,numLength=numStr.length)=>…
可能更接近OP想要的。另外,这不是代码高尔夫,不需要使用像(+numStr+1)+''>/code>这样的神秘表达式。我认为那里的${parseInt(numStr)+1}
更具可读性。我没有投反对票,只是给出反馈。谢谢。有趣的事实:在循环语法的第三部分,你可以插入任何代码(不是onyl递增或递减)。所以这个代码可以是这样的:for(让i=0;i
但是请不要;不要这样做,它不可读;)