手写一个字符串转数字的实现,不使用内置方法

把字符串转为数字并且不使用内置方法,这个实现在js里面还是比较好实现的。js是一种弱类型的语言,在基本数据类型的转换上我们可以有很巧妙的实现方式,下面就使用数组中的map函数和reduce函数来实现字符串转数组。

1
2
3
4
5
6
7
8
9
10
11
12
var 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
2
3
4
var filterArr = arr.filter(function(value){
return !isNaN(+value);//过滤非数字的字符串
});
var num = ......

到这就ok了,刚好也是对之前介绍的数组方法的一个复习。

你要是觉得好的话,可以点一下哦!