map函数和parseInt搭配使用导致的问题

let arr = [‘1’,‘3’,‘5’];
let res = arr.map(parseInt);
console.log(res);
  // [ 1, NaN, NaN ]
//这是一个美丽的误会,map其实可以传出三个参数给回调函数,而parseInt作为回调函数恰好可以接收
两个参数 这就导致数组传出元素和索引而parseInt把他们当成字符串和基数
//1.map 传出item index 和 数组本身
//2.parseInt接收一个字符串和基数   基数就是告诉函数用几进制解析这个字符串  0或不传会按10进制解析 
其余范围是为2-36 超出返回NaN  还有就是 如果出现 “用2进制解析3这个数”这种不可能存在的情况
(2进制中出现2以及2以上的数是不可能的)也会返回NaN

猜你喜欢

转载自blog.csdn.net/qaqLjj/article/details/84173450