结果是 [1, NaN, NaN]。

这是因为 map() 方法会依次对数组的每个元素调用指定的函数,并返回一个新数组,其中包含每个函数的返回值。

但是,在调用 parseInt() 函数时,它实际上接收两个参数:要解析的字符串和基数。基数是一个可选参数,表示要解析的数字的基数(从 2 到 36)。

因此,当 map() 方法将字符串作为第一个参数传递给 parseInt() 函数时,它会尝试将该字符串解析为数字,并使用数组中的当前索引作为基数。

对于数组 ['1', '2', '3'] 中的第一个元素 '1',parseInt('1', 0) 返回 1,因为基数为 0 时,parseInt() 会将其解析为十进制数字。

对于数组中的第二个元素 '2',parseInt('2', 1) 返回 NaN,因为基数为 1 时,没有任何数字可以用来表示 '2'。

对于数组中的第三个元素 '3',parseInt('3', 2) 返回 NaN,因为基数为 2 时,没有任何数字可以用来表示 '3'。

因此,结果是 [1, NaN, NaN]。

JavaScript 中 ['1', '2', '3'].map(parseInt) 的结果及原因

原文地址: http://www.cveoy.top/t/topic/l5Fg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录