Javascript映射奇怪的行为

Loï*_*oix 4 javascript map

我正在解决代码战中的一些问题,并试图将字符串转换为这样的数字列表:

"102904".split("").map(parseInt);
Run Code Online (Sandbox Code Playgroud)

预期的结果将是这样的:

[1, 0, 2, 9, 0, 4]
Run Code Online (Sandbox Code Playgroud)

但它返回:

[1, NaN, NaN, NaN, 0, 4]
Run Code Online (Sandbox Code Playgroud)

相信地图应该应用于列表中每个1位数字符串的元素.有人可能认为它没有正确解析,因为没有使用基数但是:

"102904".split("").map(function(x){ return parseInt(x);});
[ 1, 0, 2, 9, 0, 4]
Run Code Online (Sandbox Code Playgroud)

使用parseInt(x, 10),不会改变结果.但直接发送parseInt到地图创建NaN...

我尝试使用Chrome和Firefox,但收到相同的结果.

luk*_*nis 7

parseInt 涉及第二个参数 - 基数.

你的问题是 - map发送到参数:项本身和索引.

问题数字是: 0, 2, 9

为什么?

  • 0 - 基数传递为1. 1不是合法基数所以 NaN
  • 2 - 基数传递为2.在2基数2中不可用数字(0和1是)
  • 9 - 基数传递为3.仍然9不是有效数字(0,1和2)