鱼C论坛

 找回密码
 立即注册
查看: 1244|回复: 2

[已解决]求大家帮忙看看代码的问题

[复制链接]
发表于 2022-11-17 10:19:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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的结果的呢?求大佬解答。
最佳答案
2022-12-23 15:20:38
window.parseInt("123") === 123  // true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-23 15:20:38 | 显示全部楼层    本楼为最佳答案   
window.parseInt("123") === 123  // true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-8 11:48:05 | 显示全部楼层
本帖最后由 Python_KONG 于 2023-4-8 11:49 编辑
      function string2int(s) {
        var arr = [];
        for (let x of s) {
        // 筛选的时候进行转换
          arr.push(parseInt(x));
        }
        // 此时输出的类型是number
        console.log(typeof arr[0]);
        var result = arr.reduce(function (x, y) {
          return x * 10 + y;
        });
        alert(result);
      }
      string2int('123456');
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 14:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表