[‘0‘,‘1‘,‘2‘].map(parseInt)

要想整清楚[0,1,2].map(parseInt)是咋回事呢就得先从map()和parseInt()开始

map(),是数组的一个方法,使用map()会对数组里面的元素进行迭代,与此用时还会对这些元素进行处理(即原数组内每一个元素都会执行括号内的函数),处理完之后再返回一个数组。至于如何处理就看自己定义了,用法:[xxx].map(function(item,index,array){}),其中的function(){}会自动接收三个参数,即item,index,array(数组本身),之后map就会自动执行设置的函数。

ps:只要向map中传入函数,就会自动为函数附上对应的参数,并将函数执行。因为那三个参数本来就是数组本身的属性,即使用户不定义也会默认存在,用户只能选择使用或者不使用这些参数,以及使用多少个参数。

let arr = [0,1,2]
    // arr.map(console.log)
    arr.map(function(item, index, arr){
        console.log(item, index, arr)
       })
        // 0 0 [0,1,2]
        // 1 1 [0,1,2]
        // 2 2 [0,1,2]

parseInt():括号内输入字符串(字符串内必须为数字,否则NaN),返回一个整数结果。可以传入第二个参数,作为一个基数,即告诉函数需要用多少进制。如果参数为0,则按照十进制进行转换;如果参数小于2或者大于36则返回NaN

const num = parseInt("666")
            console.log(num)    //666 

            const num1 = parseInt("0xB")
            console.log(num1)   //11

            const num3 = parseInt("110",0)    //十进制
            const num4 = parseInt("110",1)    //一进制
            const num5 = parseInt("110",2)    //二进制    
            console.log(num3, num4, num5)    //110  NaN  6

['0','1','2'].map(parseInt)

无论如何map里面都会传入三个参数对应的值,函数需要返回,即返回parseInt,parseInt也需要接受参数,但原题没有写参数,就会把map的参数给parseInt,map默认参数有三个,parseInt只接受两个即可,函数可以接受比定义时多的参数,参数都保存在arguments对象中。函数改写如下

// ['0','1','2'].map(parseInt)
   ["0","1","2"].map(function(item, index, array){
      return parseInt(item, index, array)
      })   //[0,NaN,NaN]

    // 实际执行如下
    // parseInt("0",0)  //0
    // parseInt("1",1)  //NaN
    // parseInt("2",2)  //NaN  二进制遇到大于一的数字会NaN


    // parseInt("10",2)   //2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值