console.log(["1", "2", "3"].map(parseInt));
为什么没有返回[1,2,3]返回的却是[1,NaN,NaN]?
我们先单独看看map里面运行会有哪些数据
var a = ["1","2","3"];
a.map(function (value,index) {
console.log("value:",value,"index:",index);
});
结果
在说说parseInt
var b = "123";
console.log(parseInt(b));
结果当然是数字123,平时是这么用得多吧?然而它居然有第二个参数,所以我在上面打印出了index的值
下面是w3c对parseInt的解释
我们换一种方式看["1", "2", "3"].map(parseInt)
var a = [];
a.push(parseInt("1",0));
a.push(parseInt("2",1));
a.push(parseInt("3",2));
console.log(a);
结果
第一次:parseInt("1",0) //第二参数为0相当于默认的方法,所以得到了1
第二次:parseInt("2",1) //由于第二参数为1小于2了,所以得到了NaN
第三次:parseInt("3",2) //虽然第二参数2符合条件,但是参数一3并不能当成二进制解释,所以得到了NaN