You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Map和If语句的意外行为。

在使用 JavaScript 中的 Map 和 If 语句时,需要注意语句块中的代码执行顺序和数据类型转换问题。考虑以下示例:

let myMap = new Map();
myMap.set("1", "one");
myMap.set("2", "two");
myMap.set("3", "three");

let myNum = "3";
if (myMap.has(myNum)) {
  console.log(myMap.get(myNum));
}

在上述代码中,我们创建了一个 Map 对象 myMap 并往其中添加了三个键值对。然后,我们定义了一个变量 myNum 并将其初始化为字符串 "3",接着使用 if 语句判断 myMap 中是否包含 myNum 所代表的键。如果存在,就调用 get() 方法获取对应的值并输出。

结果预期输出的是 "three",但实际上输出的是 undefined,这是因为 myMap.has(myNum) 返回的是 false,尽管 myNum 的字符串值和 myMap 中某个键相同。

这是因为 Map 中的键和值都有自己的数据类型,而 myNum 的数据类型是字符串,而 Map 中的键的数据类型是 Number。因此,虽然 myMap 中存在一个键值对的键为数字 3,但是因为 myNum 是字符串类型,JavaScript 不会将它们视为相同的键。解决该问题的方法是,在 if 语句中将 myNum 强制转换为数字类型:

if (myMap.has(Number(myNum))) {
  console.log(myMap.get(Number(myNum)));
}

这样,就能够正确输出 "three"。您可以对此进行进一步的测试,以确保 Map 和 If 语句的行为符合预期。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

基于 Apache Calcite 的多引擎指标管理最佳实践|CommunityOverCode Asia 2023

你有纠结过 map 字段中有哪些 key 以及它的含义是什么吗?接下来要介绍的虚拟列语法可以让你不再纠结。第三个问题,你是如何复用相同的 case when 语句的,是手动复制吗?接下来要介绍的 SQL Define function 语法可... 需要注意这个 define function 和 DB 强绑定,必须要写一个 DATABASE 的 name。在新建时,需要在广告的数据库下定义一个名为 classify 的 function,这个 function 里面有一个行业 ID 字段。下图中返回的表达式取出...

MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文

mapper: (String) -> Int): Int { // Do something ... return mapper(input) }}```事实上这也是语法糖,编译器会预设默认接口来帮忙实现高阶函数。### 4.4 Null 安全可以说 Null 安全是 Kotlin 语言的一大特色。试想一下 Java 传统的 Null 处理无非是在调用之前加上空判断或卫语句,这种写法既繁琐,更容易遗漏。```javavoid function(Bean bean) { // Null check if (bean != null...

读《重构-改善既有代码的设计》的一些思考|社区征文

=&rk3s=8031ce6d&x-expires=1714839668&x-signature=0knkmAPf61uBWj9iWxYATaZ22DY%3D)有的时候如果复制和保存对象比较多,可以使用引用对象。这样能够统一管理可变的对象,同时修改和扩展也更方便。有的时候如果代码需要立即返回,可以用卫语句(比如检查闰年时,年份不能使用字符串之类的)。![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/79e73094c3d54e12af76c1cd521f63d4~tplv-tlddhu82...

前端AST详解,手写babel插件|社区征文

即表示引用对象成员的语句,object是引用对象的表达式节点,property 是表示属性名称,computed 如果为 false,是表示 `.` 来引用成员,property 应该为一个 Identifier 节点,如果 computed 属性为 true,则是 [] 来进行... `@babel/types `用于构建AST节点和判断AST节点类型- `@babel/generate` 打印 AST,生成目标代码和 `sorucemap`(即将ast转换成js代码)babel的处理步骤:主要有三个阶段:解析(parse), 转换 (transform),生成(gene...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Map和If语句的意外行为。 -优选内容

基于 Apache Calcite 的多引擎指标管理最佳实践|CommunityOverCode Asia 2023
你有纠结过 map 字段中有哪些 key 以及它的含义是什么吗?接下来要介绍的虚拟列语法可以让你不再纠结。第三个问题,你是如何复用相同的 case when 语句的,是手动复制吗?接下来要介绍的 SQL Define function 语法可... 需要注意这个 define function 和 DB 强绑定,必须要写一个 DATABASE 的 name。在新建时,需要在广告的数据库下定义一个名为 classify 的 function,这个 function 里面有一个行业 ID 字段。下图中返回的表达式取出...
MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文
mapper: (String) -> Int): Int { // Do something ... return mapper(input) }}```事实上这也是语法糖,编译器会预设默认接口来帮忙实现高阶函数。### 4.4 Null 安全可以说 Null 安全是 Kotlin 语言的一大特色。试想一下 Java 传统的 Null 处理无非是在调用之前加上空判断或卫语句,这种写法既繁琐,更容易遗漏。```javavoid function(Bean bean) { // Null check if (bean != null...
数据结构
本文汇总数据库传输服务 DTS 的 API 接口中使用的数据结构定义详情。 AccountMapping账号信息。在 TaskType 取值为 DataMigration 、ProgressType 取值为 Account 时,可设置的参数信息。被以下接口引用: MySQL2MyS... 1679300319338820 Statement String 需要传输的 SQL 语句。取值如下: StmtDMLInsert StmtDMLUpdate StmtDMLDelete StmtDDLAll StmtDDLAlterTable StmtDDLAlterView StmtDDLCreateFunction StmtDDLCreateIndex S...
读《重构-改善既有代码的设计》的一些思考|社区征文
=&rk3s=8031ce6d&x-expires=1714839668&x-signature=0knkmAPf61uBWj9iWxYATaZ22DY%3D)有的时候如果复制和保存对象比较多,可以使用引用对象。这样能够统一管理可变的对象,同时修改和扩展也更方便。有的时候如果代码需要立即返回,可以用卫语句(比如检查闰年时,年份不能使用字符串之类的)。![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/79e73094c3d54e12af76c1cd521f63d4~tplv-tlddhu82...

Map和If语句的意外行为。 -相关内容

一步搞定项目changelog的生成和实时通知

你还在手动组装语句,一个一个发送到你想要通知的 IM 里吗?如果需要通知的 IM 比较多,会有未通知到和阐述不准确的情况;同时阐述的模板不一致,阐述可能也无法具体到哪个项目哪个分支哪个版本;信息自动化时代,我们怎样... var streams = reverseTags.map((to, i) => { const from = i > 0 ? reverseTags[i - 1] : '' return commitsRange(from, to) })```3、commitsRange 方法是形成可读流的关键方...

干货 | 以一次Data Catalog架构升级为例,聊聊业务系统的性能优化

我们的初始实现转化为Gremlin语句后,如下所示,耗时2~3s: ``` g.V().has('__typeName', 'BusinessDomain') .has('__qualifiedName', eq('XXXX')) ... * mapVertexToAtlasEntity中,修改边遍历的读数据方式,调整为以点以及点上的属性过滤拉取,触发multiPreFetch优化。* 支持根据边类型拉取数据,在应用层根据不同的场景,指定不同的边类型集合,做数据的裁剪。最典型...

ELT in ByteHouse 实践与展望

通过自定义的SQL语句,在ByteHouse内部进行数据转换,而无需依赖独立的ETL系统及资源。 火山引擎ByteHouse是一款基于开源ClickHouse推出的云原生数据仓库,本篇文章将介绍ByteHouse团队如何在ClickHouse的基础上... .options(Map("table" -> "cnch_db.c1")).load()``````val spark = SparkSession.builder() .appName("CNCH-Reader") .config("spark.sql.extensions", "CnchAutoConvertExtension") .enableHiveSupport...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

ELT in ByteHouse 实践与展望

通过自定义的SQL语句,在ByteHouse 内部进行数据转换,而无需依赖独立的 ETL 系统及资源。 ByteHouse 在字节的应用 **关于 ByteHouse**从 2017 年开始,字节内部的整体数据量不断上涨,... =&rk3s=8031ce6d&x-expires=1715012461&x-signature=thMrhPyNyatNjiFk%2F7z3REo1lyI%3D)![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/e51015e303834dc6ab48790e59c520d...

干货 | ELT in ByteHouse 实践与展望

**SQL语句**,在ByteHouse 内部进行数据转换,而无需依赖独立的 ETL 系统及资源。![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/5f2f4268ef604695b054436f569d25cf~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1715012448&x-signature=YHZ8UBI8ZdSPbBBPkkNOscdyVSs%3D)/ 关于 ByteHouse /-----------------### ● ByteHouse 的发展从 2017 年开始,字节内部的整...

海量笔记@在云上,如何搭建属于自己的全文搜索引擎 Web应用-个人站点 | 社区征文

* TO 'xxxx'@'%' IDENTIFIED BY 'xxxxxxxx' WITH GRANT OPTION;刷新权限表mysql>flush privileges;切记安全-开启服务器的防火墙systemctl start firewalld.service```## ElasticSearch分布式全文搜索引擎... echo "fs.file-max = 6553560" >> /etc/sysctl.confecho "vm.max_map_count=655300" >> /etc/sysctl.confecho "vm.swappiness = 0" >> /etc/sysctl.conf生效:sudo sysctl -p 修改limits.conf文件:可自行根据实...

基础使用

本文将为您介绍Spark支持弹性分布式数据集(RDD)、Spark SQL、PySpark和数据库表的基础操作示例。 1 使用前提已创建E-MapReduce(简称“EMR”)集群,详见:创建集群。 2 RDD基础操作Spark围绕着 RDD 的概念展开,RDD是可... 和reduce()功能一样,但是返回的RDD数据类型和原RDD不一样。 foreach(func) 对RDD每个元素都是使用特定函数。 3 Spark SQL 基础操作Spark SQL支持直接通过SQL语句操作数据,而Spark会将SQL进行解析、优化并执行。以...

SQL自定义查询(私有化)

业务对象属性名 map列包含string_params, int_params, float_params, string_array_params等,分别对应string(version)、int(datetime)、float、list类型的事件属性落库后存在的位置。比如,list类型的事件属性a,可... 条件函数 if 语法:SELECT if(cond, then, else)如果条件cond的计算结果为非零值,则返回表达式then的结果,并且跳过表达式else的结果(如果存在)。如果cond为零或NULL,则跳过then表达式的结果,并返回else表达式的结果...

借助 MAD 助力你的 Android 应用开发|社区征文

DiffUtil 正常运作的基础正是因为 `mList` 和 `newList` 能时刻保持 Immutable 类型。## 1.2 Functional函数在 Kotlin 中是一等公民,可以作为参数或返回值的类型组成高阶函数,高阶函数可以在集合操作符等场景下提供更加易用的 API。### Collection operations```kotlinval bannerImageList: List =bannerModelList.sortedBy { it.bType}.filter { !it.isFrozen()}.map { it.image}```上面的代码中...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询