在 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