您好,JavaScript大师!
console.log([ '5', '9', '7' ].map(parseInt))
告诉我[5,NaN,NaN]
console.log([ '5', '9', '7' ].map(function(element){
return parseInt(element)
}))
告诉我[5,9,7]
但是为什么呢? ^^'
答案 0 :(得分:2)
发生这种情况是因为,如here所述:
parseInt通常与一个参数一起使用,但需要两个。首先是 一个表达式,第二个是回调函数的基数, Array.prototype.map传递3个参数:
- 元素
- 索引
- 数组
parseInt会忽略第三个参数,但是第二个参数则不会, 因此可能会造成混乱。
答案 1 :(得分:0)
map
会使用3个参数调用您为其提供的函数:值,值在数组中的索引以及数组本身。您的第二种方法安全地忽略了这些,但是您的第一种方法导致将第二个参数解释为数字的基数,而这并不是您想要的。
答案 2 :(得分:0)