在 JavaScript 中,["1", "2", "3"].map(parseInt) 的结果是 [1, NaN, NaN]

这个结果可能令人感到困惑,因为 map 方法会传递当前元素、当前索引和数组本身给回调函数。而 parseInt 函数接收两个参数:要转换的值和进制。然而,map 传递了三个参数,其中第二个参数索引被 parseInt 解释为进制,导致了意外的结果:

  • "1" 被解析为十进制数 1,因为 parseInt("1", 0) 表示以十进制解析。
  • "2" 被解析为 NaN,因为 parseInt("2", 1) 中的进制 1 是无效的。
  • "3" 被解析为 NaN,因为 parseInt("3", 2) 中的进制 2 也是无效的(在二进制中没有数字 3)。

因此,["1", "2", "3"].map(parseInt) 的结果是 [1, NaN, NaN]。为避免这种混淆,可以使用箭头函数来确保 parseInt 被正确调用,例如 ["1", "2", "3"].map(num => parseInt(num))

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.