Javascript添加前导零可用于while循环,但不能用于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 = "";

我从字符串中提取数字并将其传递给函数。我想向它添加1,然后返回字符串,同时保留前导零。我可以使用while循环,但不能使用for循环。for循环只是跳过零

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;iconsole.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
但是请不要;不要这样做,它不可读;)