0%

js map bug

1
['1', '7', '11'].map(parseInt)

返回的是

[ 1, NaN, 3 ]

原因很简单,map(a,b,c): 其实三个参数

[‘1’, ‘7’, ‘11’].map((a,b,c) => console.log(a,b,c));

1 0 Array(3) [ “1”, “7”, “11” ]
7 1 Array(3) [ “1”, “7”, “11” ]
11 2 Array(3) [ “1”, “7”, “11” ]

a 自己
b 序号
c 整个数组

循环的其实是:

parseInt(1,0,array) // 1
parseInt(7,1,array) // NaN
parseInt(11,2,array) // 3