'use strict';
function string2int(s) {
var arr[]; for(let i=0;i<s.length;i++){ arr.push(s[i]); }
return arr.map(function (x){return x-'0';}).reduce(function(x,y){return x*10+y;});
}
// 测试: if (string2int('0') === 0 && string2int('12345') === 12345 && string2int('12300') === 12300) { if (string2int.toString().indexOf('parseInt') !== -1) { alert('请勿使用parseInt()!'); } else if (string2int.toString().indexOf('Number') !== -1) { alert('请勿使用Number()!'); } else { alert('测试通过!'); } } else { alert('测试失败!'); }
数组不能这么初始化啊 唉 var arr = [];
请问为什么要return x-'0'
x - '0' 是为了将字符串转为整形,其实这样写就行了,根本不用map和reduce: function string2int(s) { return s - 0; }
Sign in to make a reply
捣麝成尘拗莲做寸
'use strict';
function string2int(s) {
var arr[]; for(let i=0;i<s.length;i++){ arr.push(s[i]); }
return arr.map(function (x){return x-'0';}).reduce(function(x,y){return x*10+y;});
}
// 测试: if (string2int('0') === 0 && string2int('12345') === 12345 && string2int('12300') === 12300) { if (string2int.toString().indexOf('parseInt') !== -1) { alert('请勿使用parseInt()!'); } else if (string2int.toString().indexOf('Number') !== -1) { alert('请勿使用Number()!'); } else { alert('测试通过!'); } } else { alert('测试失败!'); }