javascript 迭代数字数组和parseInt [duplicate]时的异常行为

dxpyg8gm  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(101)
    • 此问题在此处已有答案**:

Why does parseInt yield NaN with Array#map?(8个答案)
昨天关门了。
我在JavaScript领域已经有很长一段时间了,它仍然给了我新的东西去学习。
据我所知,下面这行代码应该打印出相同的数组,也许不是-

console.log([2, 2, 2, 2, 2, 2].map(parseInt));
// output => [2, NaN, NaN, 2, 2, 2]

console.log([2, 2, 2, 2, 2, 2].map((num) => parseInt(num)));
// output => [2, 2, 2, 2, 2, 2]

有谁能帮我理解一下吗?

mspsb9vt

mspsb9vt1#

是的,那么回调map的参数是什么

value,index,array

你的代码样本是这样执行的:

console.log(
  [2, 2, 2, 2, 2, 2].map((value, index) => {
    return parseInt(value, index);
  })
);

所以你要传递第二个参数给parseInt,也就是index
parseInt的第二个参数是base,您要在其中解析整数
基数为1和2时,没有数字2 ..所以它给出NaN
阅读更多关于parseInt on MDN的第二个参数
修复只提供一个参数,因为您的数字是以10为基数的

console.log(
  [2, 2, 2, 2, 2, 2].map(value => parseInt(value))
);

相关问题