为了账号安全,请及时绑定邮箱和手机立即绑定

["1","2","3"].map(parseInt),结果为什么是1,NaN,NaN??

["1","2","3"].map(parseInt),结果为什么是1,NaN,NaN??

猛跑小猪 2019-03-08 08:23:25
网上解释说,上面那段代码相当于[parseInt(1,0),parseInt(2,1),parseInt(3,2)],我不是很理解为什么是这样的
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

map函数会给callback传递三个参数,被遍历的元素、元素的索引和被遍历的数组本身。
parseInt会接收两个参数,第一个参数代表需要parse的这个数字,第二参数代表进制,所以会出现你说的那种情况。

查看完整回答
反对 回复 2019-03-11
?
慕神8447489

TA贡献1780条经验 获得超1个赞

相当于这样

[1, 2, 3].map((num, index) => parseInt(num, index))

而parseInt接收的第二个参数会作为将要转换的进制,只接受2到36之间的整数
0估计是布尔为false了,使用默认进制,也就是10进制
1是不被允许的进制,应该是相当于错误去处理了,无论怎么样都会返回NaN
二进制中是没有3的,为NaN

大概是这样,没有详细验证,见谅


查看完整回答
反对 回复 2019-03-11
  • 2 回答
  • 0 关注
  • 529 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信