Tha*_*you 3 javascript map parseint
我觉得我正在做一些无聊的事情.任何人都可以帮助我理解为什么以下不起作用
["1.1", "2.2", "3.3"].map(parseInt);
//=> [1, NaN, NaN]
Run Code Online (Sandbox Code Playgroud)
这虽然有效???
["1.1", "2.2", "3.3"].map(function(num) {
return parseInt(num);
});
//=> [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这似乎也有效
["1.1", "2.2", "3.3"].map(Number);
//=> [1.1, 2.2, 3.3]
Run Code Online (Sandbox Code Playgroud)
Array.prototype.map将多个参数传递给回调.特别是它传递的第二个参数是正在处理的元素的索引.
parseInt接受多个参数.特别是它接受的第二个参数是您要转换的数字系统的基础.
处理第二个元素时,您正在调用parseInt("2.2", 1),因为2它不是基数1中的有效数字,结果是NaN.
如果你声明一个"包装器"回调,parseInt那么这些额外的参数会丢失,一切似乎都能正常工作,尽管你应该总是将第二个参数传递给parseInt.
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |