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

我不明白这个 map() 行为

我不明白这个 map() 行为

繁星点点滴滴 2021-11-12 17:40:17
console.log([ '5', '9', '7' ].map(parseInt)) 告诉我 [5, NaN, NaN]console.log([ '5', '9', '7' ].map(function(element){    return parseInt(element)}))告诉我 [5, 9, 7]但为什么 ?^^'
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

发生这种情况是因为,正如此处所述:

parseInt 通常与一个参数一起使用,但需要两个。第一个是表达式,第二个是回调函数的基数,Array.prototype.map 传递 3 个参数:

  • 元素

  • 指数

  • 数组

parseInt 会忽略第三个参数,但不会忽略第二个参数,因此可能会造成混淆。


查看完整回答
反对 回复 2021-11-12
?
胡子哥哥

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

map用 3 个参数调用你给它的函数:值、它在数组中的索引和数组本身。您的第二种方法安全地忽略了这些,但您的第一个方法会导致第二个参数被解释为数字的基数,这不是您想要的。


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

添加回答

举报

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