2015-12-11 34 views
2

有人可以解释为什么我通过执行下面的代码得到这个奇怪的结果吗?JavaScript怪异的结果使用parseInt

'1.0.0.0'.split('.').map(parseInt); 

输出:

[1, NaN, 0, 0] 
+0

重复 http://stackoverflow.com/questions/262427/javascript-arraymap-and-parseint –

回答

2

parseInt函数具有是基数的第二参数。 map传递三个参数:currentValue,index和数组。 这意味着数字的索引被用作基数。 试试这个:

'1.0.0.0'.split('.').map(function(s) {return parseInt(s);}); 

https://jsfiddle.net/qbf7u1d7/

+0

感谢您的回答和对不起重复... –

+2

或者,如果您在支持[ES6箭头函数](https:// www。)的环境中工作,则使用''1.0.0.0'.split('。')。map(x => parseInt(x))''。 google.ca/search?q=ES6+arrow+functions&oq=ES6+arrow+functions&aqs=chrome..69i57.1856j0j7&sourceid=chrome&es_sm=91&ie=UTF-8)。 – meagar