<script>
//需求:把一个字符串13579先变成Array——[1, 3, 5, 7, 9],
//再利用reduce()就可以写出一个把字符串转换为Number的函数。
'use strict';
function string2int(s) {
var Array = s.split(",");//利用正则表达式将字符串分割转变为字符数组
var ChangeArray = [Array.length];//创建一个与上述字符数组等元素的数组用于存放int类型
for(var i = 0; i < Array.length; i++){//将字符数组中的元素转变为int类型的数字存入到数组中
ChangeArray[i] = Array[i] -'0';
}
var sum = ChangeArray.reduce(function (x, y) {//利用reduce以及公式:x=x * 10 + y从而将字符串转变为了对应的整型值
return x * 10 + y;
});
return sum;
}
// 测试:
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('测试失败!');
}
</script>
输出结果:
测试通过!