开发者社区> 问答> 正文

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

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

展开
收起
请回答1024 2020-04-03 15:24:03 929 0
2 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    让我们先看看最直接最粗暴的方式

     没错,答案就是:[1, NaN, NaN],那为什么答案是[1, NaN, NaN]呢?

    1.让我们先了解一下map函数的定义
    

     JavaScript Array map() 方法

     定义和用法

      map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

      map() 方法按照原始数组元素顺序依次处理元素。

      注意: map() 不会对空数组进行检测。

      注意: map() 不会改变原始数组。

     

    因为 parseInt 需要两个参数 (val, radix),但 map 传了 3 个 (element, index, array)

      即原例子相当于

      [parseInt("1",0),parseInt("2",1),parseInt("3",2)]

      分析:   按十进制转换输出1   1不在2~36之间,输出NaN   字符串"3"里面没有合法的二进制数,输出NaN   所以最后结果是[1,NaN,NaN]

    2020-04-03 22:06:38
    赞同 展开评论 打赏
  • parseInt() 函数能解析一个字符串,并返回一个整数,需要两个参数 (val, radix),其中 radix 表示要解析的数字的基数。(该值介于 2 ~ 36 之间,并且字符串中的数字不能大于 radix 才能正确返回数字结果值)。

    此处 map 传了 3 个参数 (element, index, array),默认第三个参数被忽略掉,因此三次传入的参数分别为 "1-0", "2-1", "3-2"

    因为字符串的值不能大于基数,因此后面两次调用均失败,返回 NaN ,第一次基数为 0 ,按十进制解析返回 1。

    2020-04-03 15:24:13
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载