【发布时间】:2021-12-12 21:41:58
【问题描述】:
[1,4,9].map(Math.sqrt)
将产生:
[1,2,3]
为什么要这样做:
['1','2','3'].map(parseInt)
输出这个:
[1, NaN, NaN]
我在 Firefox 3.0.1 和 Chrome 0.3 中进行了测试,作为免责声明,我知道这不是跨浏览器功能(没有 IE)。
我发现以下将达到预期的效果。但是,它仍然不能解释parseInt 的错误行为。
['1','2','3'].map(function(i){return +i;}) // returns [1,2,3]
【问题讨论】:
-
对于懒惰的:使用
.map(parseFloat),因为它只需要一个参数。 -
或使用
.map(Number)。 -
如果你想要没有手动函数的整数,你可以 arr.map(Math.floor)。
-
@Nikolai user669677 很棒的建议!我会在 anwser 中对此表示赞成
-
谁能解释一下为什么 parseInt 能正确解析第一个数字,但除了第一个索引之外会出错
标签: javascript