在数组上应用 parseInt 会产生奇怪的结果
Applying parseInt on array yields weird result
尝试运行一个简单的javascript来解析字符串中的个位数整数,如下所示:
var s = "22123222222213123212322123213222";
var a = s.split("");
var b = a.map(parseInt);
console.log(b);
[2, NaN, 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, 1, 3, 1, 2, 3, 2, 1, 2, 3, 2, 2, 1, 2, 3, 2, 1, 3, 2, 2, 2]
为什么索引为 1 的元素有 NaN?
在这里摆弄控制台:https://jsfiddle.net/po6oy1ws/
编辑
在得到下面的正确答案后,我觉得我必须查找这个"地图(数字)"业务。事实证明,Mozilla对这个特定案例有一个"陷阱"条款。Mozilla gotcha case
parseInt
有两个参数
parseInt(string, radix);
map
的回调接受三个参数:
map(currentValue, index, array)
因此,currentValue
的index
作为parseInt
函数的radix
传递。显式使用基数parseInt
:
var s = "22123222222213123212322123213222";
var a = s.split("");
var b = a.map(e => parseInt(e, 10));
或者使用 Number
代替 parseInt
:
var s = "22123222222213123212322123213222";
var a = s.split("");
var b = a.map(Number);
相关文章:
- 如何实现基于两个数组创建结果数组的逻辑
- 无法获取所需的结果数组
- 动态结果数组需要使用 Angular JS 与不同布局的表绑定
- 如何从谷歌地图API返回的结果数组中提取城市名称
- 如何查询具有特定 id 的 json 文件并获取结果数组
- 如何将谷歌放置 API 结果数组与淘汰赛集成
- 是否保证 document.querySelectorAll(“input[type=checkbox”) 的结果数组的
- 如何使用 Parse.promise javascript 定义一个承诺数组并获取结果数组 [parse.com]
- HTML5 语音 API - 重置结果数组
- 如何访问在 ajax 中返回的结果数组
- 输出一个结果数组,其中包含给定数组的唯一元素的分组计数
- Javascript返回基于日期的平均测试结果数组
- NodeJS ExpressJS如何打印API结果数组
- 在添加到结果数组之前,请检查值是否存在
- 为什么String.match在结果数组中返回重复项
- 如何合并两个只有唯一或不同值的复杂JSON对象,这些值只显示在结果数组中
- Javascript -根据字符拆分字符串,但将其保留在结果数组中
- Javascript, array concat将Windows Object添加到结果数组中,但它不适用于Firefo
- 如何分割正则表达式空间和标点匹配,但保留结果数组中的标点符号
- 尝试从json树状结构JavaScript递归创建一个结果数组