尝试运行一个简单的javascript来解析字符串中的单个数字ints,如下所示:
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
答案 0 :(得分:2)
parseInt
有两个参数
parseInt(string,radix);
map
的回调接受三个参数:
map(currentValue,index,array)
因此,index
的{{1}}作为currentValue
传递给radix
函数。明确使用parseInt
基数:
parseInt
或使用var s = "22123222222213123212322123213222";
var a = s.split("");
var b = a.map(e => parseInt(e, 10));
代替Number
:
parseInt