Javascript 为什么对map的这两个调用返回不同的值?

Javascript 为什么对map的这两个调用返回不同的值?,javascript,Javascript,有人能解释一下原因吗 [“23”、“45”、“67”]地图(parseInt)返回[23,NaN,NaN] 但是 [“23”、“45”、“67”].map((e)=>parseInt(e))返回[23,45,67] ?[“23”、“45”、“67”]。map(parseInt)基本上是: ["23", "45", "67"].map((e, i) => parseInt(e, i)) 所以,它是内部的 对于“23”i是0。因此parseInt('23',0)//23 对于“45”i是1

有人能解释一下原因吗

[“23”、“45”、“67”]地图(parseInt)返回
[23,NaN,NaN]

但是

[“23”、“45”、“67”].map((e)=>parseInt(e))返回
[23,45,67]

[“23”、“45”、“67”]。map(parseInt)
基本上是:

["23", "45", "67"].map((e, i) => parseInt(e, i))
所以,它是内部的

  • 对于“23”
    i
    0
    。因此
    parseInt('23',0)//23
  • 对于“45”
    i
    1
    。因此
    parseInt('45',1)//NaN
  • 对于“67”
    i
    2
    。因此它
    parseInt('67',2)//NaN
在这个
[“23”,“45”,“67”]中,map((e)=>parseInt(e))
,默认的
基数
10
。因此,它返回给您
[23,45,67]

阅读以了解为什么在这种情况下,默认的
radix
被选择为
10

parseInt(“45”,1)
返回什么?