javascript - 为什么 `([' 1',' 2',' 3']).map(parseInt)` 无法得到正确的结果?

标签 javascript mapping

(['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/

相关文章:

java - FetchType.LAZY 位于父级的 @OneToMany 上,FetchType.EAGER 位于子级的 @ManyToOne 上

sql - 使用映射表动态更改列名

mysql - 我可以创建从列中的整数值到它们在 sql 中表示的文本值的映射吗?

javascript - 我怎样才能使图像 map 的区域像复选框一样?

javascript - 禁用输入按钮

Javascript 函数没有按其应有的方式更改 html 文档的名称属性

c# - 流畅的 nHibernate - 不是延迟加载

javascript - 输入框中的值没有增加或减少?

javascript - 鼠标在 HTML 5 响应式 Canvas 中的位置

c# - 自动增量(身份)在 Fluent NHibernate 中不起作用