鱼C论坛

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

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

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

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

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

x
  1. function string2int(s) {
  2.     var arr = [];
  3.     for (let x of s) {
  4.         arr.push(x);
  5.     }
  6.    
  7.     arr.map(function (x) {return x*1;});
  8.     var result = arr.reduce(function (x, y) {return x*10 + y;});
  9.     alert(result);
  10. }
  11. string2int('123456');
复制代码

  1. function string2int(s) {
  2.     var arr = [];
  3.     for (let x of s) {
  4.         arr.push(x*1);
  5.     }
  6.    
  7.     var result = arr.reduce(function (x, y) {return x*10 + y;});
  8.     alert(result);
  9. }
  10. 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 编辑
  1.       function string2int(s) {
  2.         var arr = [];
  3.         for (let x of s) {
  4.         // 筛选的时候进行转换
  5.           arr.push(parseInt(x));
  6.         }
  7.         // 此时输出的类型是number
  8.         console.log(typeof arr[0]);
  9.         var result = arr.reduce(function (x, y) {
  10.           return x * 10 + y;
  11.         });
  12.         alert(result);
  13.       }
  14.       string2int('123456');
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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