zoukankan      html  css  js  c++  java
  • ['1', '2', '3'].map(parseInt) 输出答案和解析

    根据题目可以了解到这道题主要考我们的是对map函数和parseInt函数的熟悉程序,所以我们先来了解这两个函数

    map

    根据MDN上对于map的解释:map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

    上面的话读起来可能比较晦涩,我个人理解其实就是遍历数组,对数组的每一项进行遍历并做数据处理。这道题的关注重点就是在于map对于数组处理的方法,所以我们着重看下在MDN对于map参数的解释:

    • callback
      生成新数组的元素的函数,使用三个参数:
      • currentValue
        callback数组中正在处理的当前元素
      • index |可选
        callback 数组中正在处理的当前元素的索引。
      • array |可选
        map 方法调用的数组。

    这样的解释就很明白了,map方法的参数是一个回调函数,这个函数会有三个参数:当前元素、当前元素的下标和当前数组。所以这道题可以转换成一下写法:

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

    parseInt

    MDN上对于parseInt的解释非常清晰,parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整数, radix 为介于2-36之间的数。第一个参数大家都知道,我们着重看下第二个参数,第二个参数标识进制,默认是10进制的,如果第一个字符不能被转换成数字,parseInt返回NaN。

    • 另外关于在基数为 undefined,或者基数为 0 或者没有指定的情况下,JavaScript 作如下处理:
      • 如果字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).
      • 如果字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪个基数由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出radix参数的值。
      • 如果字符串 string 以其它任何值开头,则基数是10 (十进制)。

    所以我们可以得到上面的代码精简并输出是

    	parseInt('1',0)   // 10进制  输出1
        parseInt('2',1)   // 1进制   输出NaN
        parseInt('3',2)  // 2进制  输出NaN
    
    • 所以这道题我们得到答案是 [1, NaN, NaN]
  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/lideyao/p/12024285.html
Copyright © 2011-2022 走看看