程序员社区

[“1“, “2“, “3“].map(parseInt) 答案是多少?

我们需要明白两个函数,一个是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 ]

赞(0) 打赏
未经允许不得转载:IDEA激活码 » [“1“, “2“, “3“].map(parseInt) 答案是多少?

一个分享Java & Python知识的社区