【发布时间】:2018-07-27 20:10:35
【问题描述】:
我有一个只包含数字的字符串,但该字符串不能以零开头。
我想到的第一件事是:
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 循环失败了。一旦我删除了数组的第一个条目,循环的索引就不会重置,因此它会跳过数组中的第二个 zero。这是代码:
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(''));
对于这个问题还有哪些其他解决方案?有没有更高效的解决方案?
【问题讨论】:
-
所以您的替代代码有效,但您想探索其他方法/解决方案?如果是这样,那么你的问题是在错误的地方。
标签: javascript arrays for-loop