把字符串转为数字并且不使用内置方法,这个实现在js里面还是比较好实现的。js是一种弱类型的语言,在基本数据类型的转换上我们可以有很巧妙的实现方式,下面就使用数组中的map函数和reduce函数来实现字符串转数组。1
2
3
4
5
6
7
8
9
10
11
12var str = "12345";
//把字符串转换成数组
var arr = str.split("");//["1","2","3","4","5"]
//把字符串数组转换成数字数组
var numArr = arr.map(function(value){
return +value;//使用字符串的弱类型转换
});//[1,2,3,4,5]
//把数组转成数字的字面量
var num = numArr.reduce(function(pre,cur){
return pre*10 + cur;
});
console.log(num);//12345
这里只是拿纯数字字符串做了一次演示,但如果真的是纯数字字符串的话肯定不用这么麻烦啦!
直接通过弱类型转换就能搞定1
var num = +"12345";//12345
so easy!!!
如果是一个非纯数字的字符串,只使用上面的map函数就不太合适了。我们需要过滤掉不需要的数据,这个时候数组的filter函数就派上用场了。
1 | var filterArr = arr.filter(function(value){ |
到这就ok了,刚好也是对之前介绍的数组方法的一个复习。