我有一个仅包含数字的字符串,但该字符串不能以零开头。
我想到的第一件事是:
let myNumber = "0052";
myNumber = myNumber.split('');
for (let i = 0; i < myNumber.length; i++) {
if (myNumber[i] == '0') {
myNumber.splice(i, 1);
i--;
} else {
break;
}
}
console.log(myNumber);
console.log('result:', myNumber.join(''));
就这样一切正常。
我认为可能还有另一种不使用经典 for 循环的方法。 我尝试使用 for-of 循环失败了。一旦我删除数组的第一个条目,循环的索引就不会重置,因此它会跳过数组中的第二个零。这是代码:
let myNumber = "0052";
myNumber = myNumber.split('');
for (let n of myNumber) {
if (n == '0') {
myNumber.shift();
} else {
break;
}
}
console.log(myNumber);
console.log('result:', myNumber.join(''));
对于这个问题还有什么其他的解决方案吗?有没有更高效的解决方案?
最佳答案
您可能正在寻找的是 parseInt
函数。
const result = parseInt("0052", 10).toString();
console.log(result);
我还添加了 toString()
将数字转换为字符串。 parseInt
还接受第二个参数 - 基数。 Read more about parseInt
关于javascript - 数字串不能以零开头。其他解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48834868/