我正在从字符串中提取数字并将其传递给函数。我想向其添加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;
}
答案 0 :(得分:1)
您的for循环语法错误,应该是:
(initializer; condition; increments / decrements)
如此:
for(let i = 0; i < zerosToAdd; i++) {}
var addMoreZeros = (numStr)=> {
let newNumStr = (parseInt(numStr)+1).toString();
let zerosToAdd = numStr.length - newNumStr.length;
let zeroPadStr = "";
for(let i = 0; i < zerosToAdd; i++) {
zeroPadStr+="0";
}
return zeroPadStr + newNumStr;
}
console.log(addMoreZeros("00125"))
答案 1 :(得分:0)
替代方法(而不是for / while):
var addMoreZeros = (numStr, numLength = numStr.length) => `${++numStr}`.padStart(numLength,'0');
// example of usage
console.log(addMoreZeros("124", 5));
说明++numStr
将数字字符串强制转换为数字并将其递增,然后`${...}`
将数字强制转换回字符串。最后padStart()
添加前导零。