(['1','2','3']).map(n => parseInt(n));
将返回预期结果[1,2,3]
但是:
(['1','2','3']).map(parseInt);
返回[1, NaN, NaN]
。
哪里错了?
最佳答案
如Array#map
回调有 3 个参数,第二个参数是导致此结果的 index
。无论您作为回调传递什么函数
,此参数都会作为该函数的参数传递。
parseInt
的第二个参数是 radix
因此 parseInt('2',1)
和 parseInt('3',2)
是 NaN
执行流程为:
console.log((['1', '2', '3']).map(function(currenValue, index, array) {
return parseInt(currenValue, index, array);
}));
我建议您使用数字
console.log((['1', '2', '3']).map(Number));
关于javascript - 为什么 `([' 1',' 2',' 3']).map(parseInt)` 无法得到正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38671435/