猿问

我不明白这个 map() 行为

console.log([ '5', '9', '7' ].map(parseInt)) 告诉我 [5, NaN, NaN]


console.log([ '5', '9', '7' ].map(function(element){

    return parseInt(element)

}))

告诉我 [5, 9, 7]


但为什么 ?^^'


繁星点点滴滴
浏览 120回答 2
2回答

一只名叫tom的猫

发生这种情况是因为,正如此处所述:parseInt 通常与一个参数一起使用,但需要两个。第一个是表达式,第二个是回调函数的基数,Array.prototype.map 传递 3 个参数:元素指数数组parseInt 会忽略第三个参数,但不会忽略第二个参数,因此可能会造成混淆。

胡子哥哥

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

相关分类

JavaScript
我要回答