1.数组的map
函数,接受三个参数,分别为:当前值,当前索引,当前数组。
2.parseInt接受两个参数,需要转换的字符串,基数(代表几进制,取值范围2~36,省略不写或者 0代表十进制)
['1', '2', '3'].map(parseInt)
等价于:
['1', '2', '3'].map((item, index) => {
return parseInt(item, index)
})
因此['1','2','3'].map(parseInt) 的返回值为[1, NaN, NaN],具体执行过程为:
let a = ['1', '2', '3'].map(parseInt);
console.log(a); //[1, NaN, NaN]
let b = ['1', '2', '3'].map((item, index) => {
return parseInt(item, index)
})
console.log(b); //[1, NaN, NaN]
// parseInt('1', 0) 1
// parseInt('2', 1) NaN
// parseInt('3', 2) NaN
如果想要返回1,2,3怎么修改?
function parseIntFun(item) {
return parseInt(item, 10)
}
console.log(['1', '2', '3'].map(parseIntFun)); //[1, 2, 3]
/* 执行过程:
parseInt('1', 10) 1
parseInt('2', 10) 2
parseInt('3', 10) 3
*/