|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- function string2int(s) {
- var arr = [];
- for (let x of s) {
- arr.push(x);
- }
-
- arr.map(function (x) {return x*1;});
- var result = arr.reduce(function (x, y) {return x*10 + y;});
- alert(result);
- }
- string2int('123456');
复制代码
- function string2int(s) {
- var arr = [];
- for (let x of s) {
- arr.push(x*1);
- }
-
- var result = arr.reduce(function (x, y) {return x*10 + y;});
- alert(result);
- }
- string2int('123456');
复制代码
两段代码的目的都是为了将由数字组成的字符串转换成int,思路是先用一个for of循环将字符串拆解成若干单个字符并放入数组arr,然后用各个字符乘1将arr内的字符转换成int,再调用reduce配合函数将其转换成最终结果。思路都是一样的,可是只有第二段代码可以正常工作,第一段代码输入123456返回的结果为10203040506,经调试后发现第一段代码在执行完arr.map那一行之后数组内的元素仍为字符,并没有转化成int,这是为什么呢?而且既然数组里的元素还是字符串,最后reduce执行后又是怎么得到10203040506的结果的呢?求大佬解答。
window.parseInt("123") === 123 // true
|
|