我们需要明白两个函数,一个是map函数,另一个是parseInt函数
//map函数
map函数传入一个函数,并且最终的返回一个新的数组。在传入的函数中,存在三个参数,一个是value值,一个是Index, 另一个是arr
let arr = [1,2,3]
let newArr = arr.map((value, index, arr) => {
console.log(value, index, arr)
return value + 1
} )
console.log(newArr) //[2,3,4]
/*
1 0 [ 1, 2, 3 ]
2 1 [ 1, 2, 3 ]
3 2 [ 1, 2, 3 ]
*/
//parseInt函数
parseInt函数传入两个参数,一个是string值,另一个是需要转化的进制数。
//例如
console.log(parseInt(10, 0)) //10
console.log(parseInt(10, 2)) //2
console.log(parseInt(10, 8)) //8
当第二个参数如果不传值或者如果传入的值是0,则会按照默认的二进制进行转换。
下面我们将parseInt和map函数结合在一起。
当我们在map函数中使用parseInt时,map中会将前两个参数,传递给parseInt中。
就以[‘1’,'2','3'].map(parseInt)为例
每一次传入parseInt中的值是1-0, 2-1, 3-2
console.log(parseInt(1,0)) //1
console.log(parseInt(2,1)) //NaN
console.log(parseInt(3,2)) //NaN
我们想一想当转化为一进制时,出现2,可能不能转化,所以报错为NaN。
//我们在来看一个例子
let newArr = [10, 12, 32].map(parseInt)
console.log(newArr)
// [10,NaN, NaN ]