gpt4 book ai didi

javascript - 获取 NaN 不一致地映射 parseInt

转载 作者:行者123 更新时间:2023-12-03 12:29:27 24 4
gpt4 key购买 nike

正在使用一些代码来创建 0 的数组的,发现只有一个值 NaN被返回而不是 0 .我在 Chrome、Node 和 Firefox 中得到了这个。

是什么导致第二个值为 NaN ?

var arr = new Array(32).join(0).split('').map(parseInt)
// prints [0, NaN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
console.dir(arr)

最佳答案

那是因为函数传递给 map 将使用三个参数调用:

  • 当前数组项
  • 该项目的索引
  • 整个数组

  • 在这种情况下,该函数是 parseInt ,它只使用两个参数:
  • 要解析的字符串
  • 用于解析字符串的基数
  • 其他参数将被忽略。

  • 因此,对于数组中的第二项(即索引 1),调用将是

    parseInt("0", 1, ignoredArray)

    当基数为 1 时, NaN返回:

    • Let R = ToInt32(radix).
    • If R ≠ 0, then
      • If R < 2 or R > 36, then return NaN.


    另请注意,如果您使用更大的数字,例如 new Array(99) , 你会看到 NaN s 从索引 37 开始。

    关于javascript - 获取 NaN 不一致地映射 parseInt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322362/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com