代码如下:
'use strict';
function string2int(s) {
function strtonumarr(str)//字符串转数字数组函数
{
var strarr=str.split('');//将字符串分割成字符串数组
var numarr=strarr.map(function(x)
{
return x=x*1;//通过js的弱类型转换将字符类型转到数字类型
})
return numarr;
}
return strtonumarr(s).reduce(function(x,y){return x*10+y;});//再通过reduce转成整数
}
// 测试:
if (string2int('0') === 0 && string2int('12345') === 12345 && string2int('12300') === 12300) {
if (string2int.toString().indexOf('parseInt') !== -1) {
console.log('请勿使用parseInt()!');
} else if (string2int.toString().indexOf('Number') !== -1) {
console.log('请勿使用Number()!');
} else {
console.log('测试通过!');
}
}
else {
console.log('测试失败!');
}
最后总结:
切记map和reduce返回一个新数组,原来的数组不发生变化,所以要进行传递时,必须定义新的数组进行传递。
js字符转数字的三种方法:
1.转换函数
parseInt();
2.强制转换类型
Number();
3.js变量弱类型转换
以后的博客会详细说这三种方法。