为什么javascript map parsint of ['10','10','10 ']给出了废话?[重复]

u0sqgete  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(188)

此问题在此处已有答案

Why does parseInt yield NaN with Array#map?(8个答案)
八年前就关门了。
xs = ['10','10','10 '] [ ' 10','10','10' ]
xs.map(parseInt)[ 10,NaN,2 ] xs.map(parseFloat)[ 10,10,10 ]
为什么结果是10,nan,第一个是2?为什么第二个是正确的?

mqkwyuun

mqkwyuun1#

.map()向其回调传递多个参数,如callback(element,index,array)。
parseInt()使用.map()传递的第二个参数index作为基数,使结果失真。
另一方面,parseFloat()只需要一个参数,所以它可以按预期工作。
如果你传递一个回调函数,你可以避免这个问题,因为你可以控制parseInt()的调用方式:

xs.map(item => parseInt(item, 10));

相关问题