javascript - 数字串不能以零开头。其他解决方案?

标签 javascript arrays for-loop

我有一个仅包含数字的字符串,但该字符串不能以零开头。

我想到的第一件事是:

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/

相关文章:

javascript - InstallTrigger.install 在 Chrome 中等效吗?

javascript - 如何使用主键和辅助键对数据进行非规范化

javascript - 当我在代码中添加 .push 函数以进行循环中断时

javascript - 如何在不使用 for 循环的情况下使用迭代器对数组值求和

java - 结束时打印第一个数组元素

java - 嵌套 for 循环不返回到外循环

javascript - 如何使用jquery制作恒定的动画

javascript - 有没有一种安全的方法来允许应用程序的用户创建自定义属性/ getter ?

javascript - 只运行一次部分?

c - 将整数存储在char数组中