理解这道题的本质就在于:
- 对map第一个参数callback传参的理解
- 对parseInt的传参和转化字符的规则
其实就是考察我们平时对基础知识的API的掌握情况。
Array.prototype.map() 函数
arr.map(function(value, index, array){}, thisArg)
复制代码
map()
函数是创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。在这里我们需要注意的是map的第一个参数是一个 callback 函数,所以题目使用的 parseInt 就是map的callback函数,所以原题可改写为:
['1','2','3'].map(parseInt(value, index, array))
复制代码
parseInt()
parseInt 的主要功能是 解析一个字符串,并返回一个整数
。 主要接受两个参数 parseInt(string, radix)
string 必需,要被解析的字符串。radix可选,表示要解析的数字的基数,该值介于 2 ~ 36 之间,也就是要转换的进制,默认10进制。
parseInt('1', 0, ['1','2','3'])) // 1
parseInt('2', 1, ['1','2','3'])) // NaN
parseInt('3', 2, ['1','2','3'])) // NaN
复制代码