为什么parseInt使用Array#map生成NaN?从Mozilla开发人员网络:[1,4,9].map(Math.sqrt)将产生:[1,2,3]为什么这样做:['1','2','3'].map(parseInt)让我们这样做:[1, NaN, NaN]我在Firefox3.0.1和Chrome0.3中进行了测试,作为免责声明,我知道这不是跨浏览器功能(没有IE)。我发现以下内容将达到预期的效果。然而,它仍然不能解释parseInt.['1','2','3'].map(function(i){return +i;}) // returns [1,2,3]
3 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
Array.map
回调由三个参数调用:元素的值、元素的索引和正在遍历的Array对象。“
parseInt
parseInt
parseInt('1', 0); // OK - gives 1parseInt('2', 1); // FAIL - 1 isn't a legal radixparseInt('3', 2); // FAIL - 3 isn't legal in base 2
['1','2','3'].map(function(num) { return parseInt(num, 10); });
['1','2','3'].map(num => parseInt(num, 10));
parseInt
0x
.)
互换的青春
TA贡献1797条经验 获得超6个赞
map
parseInt
['10','1','100'].map(_.partial(parseInt, _, 10))
['10','1','100'].map(function(x) { return parseInt(x, 10); });
MYYA
TA贡献1868条经验 获得超4个赞
// Works fineparseInt( 4 );parseInt( 9 );// Breaks! Why?[1,4,9].map( parseInt ); // Fixes the problem[1,4,9].map( function( num ){ return parseInt( num, 10 ) } );
添加回答
举报
0/150
提交
取消