pareseInt和map函数(转http://www.cnblogs.com/liuyfl/p/4476179.html)
先看看["1","2","3"].map(parseInt)的结果
["1","2","3"].map(parseInt) //[1,NaN,NaN],
就是这样,为什么会这样?让我们先分析上面用的的函数的用法
1.parseInt()
parseInt(string,radix)
| 参数 | 描述 |
| string | 必须,要被解析的字符窜 |
| radix |
可选,表示要解析的数字的基数,该值介于2~36之间。 如果省略该参数或期值为0,则数字将以10为基础来解释。如果他以“0x”或以“0X”开头,将以16为基数。 如果该参数小于2或者大于36,则parseInt()将返回NaN。 |
2.map()
map是对数组的每一个元素调用回调函数并返回一个包含结果的数组,有三个函数,其中一个可选参数。
array1.map(callbackfn[,thisArg])
| 参数 | 定义 |
| array1 | 必须。一个数组对象。 |
| callbackfn | 必须。一个接受“最多”三个参数的函数。对于数组中的每个元素,‘map’方法都会调用‘callbackfn’函数一次。 |
| thisArg | 可选。可在‘callbackfn’函数中为其引用‘this’关键字对象。如果省略‘thisArg’,则‘undefined’将用作‘this’值。 |
map中回调函数的语法:funtion callbackfn(value,index,array1),可使用最多三个参数来声明回调函数。
第一个参数value,数组元素值;
第二个参数index,数组元素的数组索引;
第三个参数array1,包含该元素的数组对象。
因此,[“1”,“2”,“3”].map(parseInt)等于[parseInt(1,0),parseInt(2,1),parseInt(3,2)]
parseInt(1,0) //radix为0,1十进制为1 parseInt(2,1) //radix小于2,返回NaN parseInt(3,2) //radix为2,3的二进制NaN
所以结果就如上所示......

浙公网安备 33010602011771号