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

所以结果就如上所示......

posted @ 2015-05-06 11:48  一日三餐  阅读(296)  评论(1)    收藏  举报