javascript基础语法问题:
1234567891011121314151617181920,
优雅的转化为[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
有办法吗?
javascript基础语法问题:
1234567891011121314151617181920,
优雅的转化为[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
有办法吗?
function transform(str) {
var ret = [];
for (var i = 0, temp = ""; i < str.length; ++i) {
var char = str[i];
if (isNaN(Number(char))) {
if (temp.length) temp = "";
continue;
} else {
temp += char;
}
var num = Number(temp);
if (num > (ret[ret.length - 1] || -1)) {
ret.push(num);
temp = "";
}
}
return ret;
}
console.log(transform("1a2b3c4d5"));
console.log(transform("110100100010000"));
console.log(transform("1234567891011121314151617181920"));
10 回答11k 阅读
7 回答11.1k 阅读
6 回答2.9k 阅读
5 回答4.7k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
优雅不优雅不知道,反正是算出来了。
不过用正则表达式测试是否全是 9 有点慢,这里可以稍微提一下速,只有第一个字符是 9 的时候才进行检查。性能测出来下面这个要快一倍。