map和parseInt的结合使用方式,比较常见的面试题
arr = [10,30,40,50]
arr = arr.map(parseInt)
我们想要了解这个结合使用的意思首先就要先解析一下这个结合的意思
map呢便是遍历各项,而写法则是
arr.map((itme,index)=>{
})
两个值,一个itme便是遍历的这一项,而index便是这项的索引 而parseInt我们通常使用的时候可能并没有注意过它的第二个值,radix;
parseInt([value],[radix])
第一个值其实也不用我多少,大家也知道是什么,在运行当做,第一步便会把它转化为字符串类型,这一步必须要强调一下,而中点是radix这个第二项,他代表的是进制,默认不写的情况下是10进制,而radix的固定值在2-32之间如果超出范围便是nan而其中比较特例的是,如果是0也就是10,这个比较特例的存在;
parseInt(10,1)=>nan
parseInt(10,0)=>10
parseInt(2,2)=>nan
parseInt(333,4)=>63 结果便是匹配之后转化为10进制
2*3^0 + 1*3^1 + 2*3^-1 + 1*3^-2
我们现在在把目光转向我们上面那个题,这样就比较清晰一些了吧
arr = [10,30,40,50]
arr = arr.map(parseInt)
parseInt(10,0)=> 10 0代表10进制 itme 10 , index 0
parseInt(30,1)=> nan 我们上面说过,第二项进制值必须在2-32之间
parseInt(40,2)=>nan 二进制的匹配里只有 0 和 1
parseInt(50,3)=>nan 这个就不用解释了吧!