数组的map方法以及parseInt函数

原题: ['1', '2', '3'].map(parseInt);

第一次分解:

['1', '2', '3'].map((item, index) => {
    return parseInt(item, index)
})

第二次分解
parseInt('1', 0) // 1
parseInt('2', 1) // NaN
parseInt('3', 2) // NaN, 3 不是二进制

结果
['1', '2', '3'].map(parseInt) // 1, NaN, NaN
  • array.map(function(currentValue,index,arr))
    • currentValue: 必须,循环到的数组的当前值
    • index: 可选,循环到的数组的当前值的索引
    • arr: 可选,当前元素所属的数组对象,即调用这个方法的array
  •  parseInt("要转换的字符串", 进制基数radix) 
    • 进制基数:可以是 2,8,10,16,默认以 10 进制处理
    • radix为 undefined,或者radix为 0 或者没有指定的情况下,JavaScript 作如下处理:

      • 如果字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).
      • 如果字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪个基数由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出radix参数的值。
      • 如果字符串 string 以其它任何值开头,则基数是10 (十进制)。
原题:['10','10','10','10','10'].map(parseInt);

第一次分解:

['10','10','10','10','10'].map((item, index) => {
    return parseInt(item, index)
})

第二次分解
parseInt('10', 0) // 10
parseInt('10', 1) // NaN
parseInt('10', 2) // 2
parseInt('10', 3) // 3
parseInt('10', 4) //4


结果
['10','10','10','10','10'].map(parseInt);// 10 NaN 2 3 4

 

你可能感兴趣的:(原生JS)