• 自动秒收录
  • 软件:1973
  • 资讯:57811|
  • 收录网站:279851|

IT精英团

这道高频面试题你掌握了吗?

这道高频面试题你掌握了吗?

浏览次数:
评论次数:
编辑: mob604756ff98d6
信息来源: 51CTO博客
更新日期: 2021-05-18 13:44:51
摘要

这道高频面试题你掌握了吗?,引言['1','2','3'].map(parseInt)输出结果是什么?这是在Daily-Interview-Question项目看到一个比较有意思的题目。主要是讲JS的映射与解析。让我们开始吧。早在2013年,加里·伯恩哈德就在微博上发布了以下代码段:['10','10','10','10','10'].map(pa

  • 正文开始
  • 相关阅读
  • 推荐作品

引言


['1', '2', '3'].map(parseInt) 输出结果是什么 ?

这是在 Daily-Interview-Question 项目看到一个比较有意思的题目。

主要是讲 JS 的映射与解析。

让我们开始吧。

早在 2013 年, 加里·伯恩哈德就在微博上发布了以下代码段:

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

parseInt


parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数 (数学系统的基础)。

const intValue = parseInt(string[, radix]);

string 要被解析的值。如果参数不是一个字符串,则将其转换为字符串(使用 ToString 抽象操作)。字符串开头的空白符将会被忽略。

radix 一个介于 2 和 36 之间的整数(数学系统的基础),表示上述字符串的基数。默认为10。

返回值 返回一个整数或 NaN。

parseInt(100); // 100
parseInt(100, 10); // 100
parseInt(100, 2); // 4 -> converts 100 in base 2 to base 10

注意:
在radix为 undefined,或者radix为 0 或者没有指定的情况下,JavaScript 作如下处理:

  • 如果字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).

  • 如果字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪个基数由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出radix 参数的值。

    如果字符串 string 以其它任何值开头,则基数是10 (十进制)。

更多详见 parseInt | MDN

map


map() 方法创建一个新数组,数组中的每个元素都调用一个提供的函数,新数组中的元素就是执行这个函数后返回的结果。

var new_array = arr.map(function callback(currentValue[,index[, array]]) {
 // Return element for new_array
 }[, thisArg])

可以看到callback回调函数需要三个参数, 我们通常只使用第一个参数 (其他两个参数是可选的)。
currentValue 是callback 数组中正在处理的当前元素。
index可选, 是callback 数组中正在处理的当前元素的索引。
array可选, 是callback map 方法被调用的数组。
另外还有thisArg可选, 执行 callback 函数时使用的this 值。

const arr = [1, 2, 3];
arr.map((num) => num + 1); // [2, 3, 4]

更多详见Array.prototype.map() | MDN

回到真实的例子上


回到我们真实的例子上

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

对于每个迭代map, parseInt()传递两个参数: 字符串和基数。
所以实际执行的的代码是:

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

即返回的值分别为:

parseInt('1', 0) // 1
parseInt('2', 1) // NaN,radix 需要在 2 和 36 之间
parseInt('3', 2) // NaN, 3 不是二进制

所以:

['1', '2', '3'].map(parseInt)
// [1, NaN, NaN]

由此,加里·伯恩哈德例子也就很好解释了,这里不再赘述

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

如何在现实世界中做到这一点


如果你就是想要循环访问字符串数组, 那要怎么办? 使用 map()时然后把它换成数字就好了

['10','10','10','10','10'].map(Number);
// [10, 10, 10, 10, 10]
标签:Java
面试题:5 分钟掌握 HTTP 状态码
« 上一篇 2021-05-18
我用血和泪的教训,再次告诉你:不要接私活
下一篇 » 2021-05-18
  • 如何在Ubuntu中保留文件系统并备份当前开发板镜像
    0阅读 0条评论 个赞
    在Ubuntu保留文件系统或者说备份当前开发板镜像的需求在不断增加。比如Ubuntu文件系统需要安装库文件的话直接使用apt-get工具就可以下载,但由于需要下载的核心板较多,比较费时间,这时需要将安……
  • 国产核心板全志T507助力消防系统升级
    0阅读 0条评论 个赞
    9月16日下午,位于湖南长沙市区内的中国电信大楼发生火灾,建筑高度218米,现场浓烟滚滚,数十层楼体燃烧剧烈。消防救援人员赶到现场后很快将火势控制住,目前大楼火势已被扑灭,所幸未发现人员伤亡。湖南电信……
  • 教大家如何处理Spring Boot易流中的用户和群体!
    0阅读 0条评论 个赞
    1.准备工作2.用户操作2.1添加用户2.2修改用户2.3删除用户2.4查询用户3.组操作3.1添加组3.2修改组3.3删除组3.4查询组4.查看表详情虽然说我们在实际开发中,……
  • 从PG15开始WAL压缩优化
    0阅读 0条评论 个赞
    PG15传闻中的超级令人激动的功能大多数跳票了,年初我也写过一个关于PG15新功能跳票的文章。PG15BETA已经发出几个月了,似乎PG15里令人激动人心的功能不多,不过从长长的新功能列表里,……
  • 深入了解美团叶子发射器开源方案
    0阅读 0条评论 个赞
    大家好,我是树哥。之前我们有聊过「如何设计一个分布式ID发号器」,其中有讲过4种解决方案,分别是:UUID类雪花算法数据库自增主键Redis原子自增美团以第2、3种解决方案为基础,开发出……
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
  • 金牛座入门 MVC微服务框架开发教程:项目部署:4 微服务应用发布到Docker进行部署
    0阅读 0条评论 个赞
    前言:本篇教程,演示ASP.NETCore微服务应用程序,如何最简方式发布到Docker中部署,并运行起来。新手两个简易概念:1、映像:可以理解为Class,用于定义;2、容器:可以理解为Clas……
  • sql server索引I摘要
    0阅读 0条评论 个赞
    一、存储结构在SQLServer中,有许多不同的可用排列规则选项。二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D")。因为所有内容都表示为数字,所以……
  • 中国台湾的建设:有效登陆中国台湾的六脉神剑
    0阅读 0条评论 个赞
    在数字化时代,数字化体系的建设需要的是系统化的规划和产品化的迭代的模式,基于企业核心业务能力体系,做中台化的持续建设与落地,则是一种不错的选择。所以,企业业务中台的建设和落地,是关系到企业数字化战略成……
  • 教你如何构建JAVA分布式爬虫
    0阅读 0条评论 个赞
    在工作中,我们经常需要去获取一些数据,但是这些数据可能需要从第三方平台才可以获取到。这个时候,爬虫系统就可以帮助我们来完成这些事情。提到爬虫系统,很多人都会想到使用python。但实际上,语言只……
  • 卡夫卡详解(一)——卡夫卡是什么 怎么用
    0阅读 0条评论 个赞
    kafka是什么在回答这个问题之前,我们需要先了解另一个东西--eventstreaming。什么是eventstreaming我觉得,eventstreaming是一个动态的概念,它描述了一……
  • SQL Server操作系统的任务调度机制
    0阅读 0条评论 个赞
    简介SQLServerOS是在Windows之上,用于服务SQLServer的一个用户级别的操作系统层次。它将操作系统部分的功能从整个SQLServer引擎中抽象出来,单独形成一层,以便为存……
  • SQL Server索引的功能
    0阅读 0条评论 个赞
    一、深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。微软的SQLSERVER提供了两种索引:聚集索引(clusteredindex,也称聚类索引、簇集索引)和非聚集索引(nonclu……
  • Java可以重新锁定的那些东西(1)
    0阅读 0条评论 个赞
    本文主要包含的内容:可重入锁(ReedtrantLock)、公平锁、非公平锁、可重入性、同步队列、CAS等概念的理解显式锁……
  • Java源代码分析|对象
    0阅读 0条评论 个赞
    Object定义Object类是类层次结构的根。每个类都有Object类作为超类。所有对象,包括数组等,都实现了这个类的方法。静态代码块在Object类的最开始部分,有如下四行代码:priva……
  • 如何获取Yarn和Spark UI的界面索引信息
    1阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • 【云原生】-码头工人容器迁移神谕到关系型数据库
    0阅读 0条评论 个赞
    文章目录前言⛳️1.创建专用网络⛳️2.Oracle12C部署✨2.1镜像下载✨2.2容器创建✨2.3创建业务用户✨2.4监听启动⛳️3.MySQL8部署✨3.1容器……
  • SpringMVC 01: SpringMVC第一个SpringMVC项目
    0阅读 0条评论 个赞
    SpringMVCSpringMVC概述:是基于MVC开发模式的框架,用来优化控制器是Spring家族的一员,也具备IOC和AOP什么是MVC:它是一种开发模式,是模型视图控制器的简称,所有的web应……
  • 设计模式介绍——单一模式
    0阅读 0条评论 个赞
    简介一个类只允许创建一个对象(或实例),那么这个类就是一个单例类,这种设计模式称作单例设计模式(SingletonDesignPattern),简称单例模式。单例模式保证系统内存中只存在一个对象,……
  • c#异步高级————通道[1]
    0阅读 0条评论 个赞
    前言该系列为异步编程的进阶篇,其实也不能这么讲。世界上本没有进阶篇,只能说是高级篇(高级篇不能说多高级,是对底层的封装的意思),只要是加深理解都是进阶。本章先介绍一下channel。正文下面没什么好说……
  • 从PG15开始WAL压缩优化
    0阅读 0条评论 个赞
    PG15传闻中的超级令人激动的功能大多数跳票了,年初我也写过一个关于PG15新功能跳票的文章。PG15BETA已经发出几个月了,似乎PG15里令人激动人心的功能不多,不过从长长的新功能列表里,……
  • SQL Server表变量和临时表的区别
    0阅读 0条评论 个赞
    一、表变量表变量在SQLServer2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键……
  • Sql Server连接池及其用法
    0阅读 0条评论 个赞
    其实我们一直在使用SqlServer的连接池。在连接字符串中,Pooling为是否启用连接池,默认值为true,表示启用。与连接池相关的两个重要参数是MinPoolSize和MaxPoo……
  • Hadoop(简介)大数据技术概述 运行环境构建 运行模式
    0阅读 0条评论 个赞
    文章目录1Hadoop概述1.1Hadoop是什么1.2Hadoop优势1.3Hadoop组成(面试重点)1.3.1HDFS架构概述1.3.2YARN架构概述1.3.3Map……
  • Velox简介:一个开源的统一执行引擎
    0阅读 0条评论 个赞
    •Meta正在引入Velox,这是一个开源的统一执行引擎(unifiedexecutionengine),旨在加速数据管理系统和简化其开发。•Velox正在积极开发中,Meta在2022……
  • Go语言知识|基本数据类型
    0阅读 0条评论 个赞
    前言学习Go半年之后,我决定重新开始阅读《TheGoProgramingLanguage》,对书中涉及重点进行全面讲解,这是Go语言知识查漏补缺系列的文章第二篇,前一篇文章则对应书中一二两章。我……
最近发布资讯
更多