当初我第一眼看到这个题目时,天然而然的想到了不就是这样的吗数组
[parseInt('1'), parseInt('2'), parseInt('3')] // ==> [1,2,3]
复制代码
咱们打印出来,结果却不是这样 bash
map() 方法按照原始数组元素顺序依次处理元素。函数
array.map(function (currentValue, index, arr){}, thisValue )
复制代码
parseInt(string, radix)
复制代码
parseInt函数接收两个参数,string:要被解析的字符串,radix:要解析的数字的基数。该值介于 2 ~ 36 之间。
复制代码
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。this
当忽略参数 radix , JavaScript 默认数字的基数以下:spa
若是 string 以 "0x" 开头,parseInt() 会把 string 的其他部分解析为十六进制的整数。code
若是 string 以 0 开头,那么 ECMAScript v3 容许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。orm
若是 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。cdn
好的,阅读完这连个API的文档,下面结合这个题目,对于每一个迭代map, parseInt()传递两个参数: 字符串和基数。 对象
[parseInt('1', 0), parseInt('2', 1), parseInt('3', 2)] ==> [1, NaN, NaN]
复制代码
下面拓展一下,分析一下['10', 1, 2, 3, 123, 123, 234, 345, 456, 567, 678].map(parseInt)结果是什么? blog
打印结果 ![]()
欢迎交流和指正 ![]()