使用 Array 对象作为 ES6 Map 的键

2023-11-25

我正在尝试将我的代码更新到 ES6,因为我正在使用 Node 4.0 并且到目前为止非常喜欢它的功能。但是我对新的 ES6 有问题Map数据结构,因为它的行为不同{}使用时Array作为钥匙。我用它作为柜台地图。

我运行这段代码,我想知道如何使用数组作为Map.

"use strict";

var a = new Map();
a.set(['x','y'], 1);
console.log(a.get(['x','y']));

var b = {};
b[['x','y']] = 1;

console.log(b[['x','y']]);

它打印出以下内容,第一行应该是1并不是undefined:

undefined
1

原始 JS 映射对密钥进行了字符串化,我不想使用新的 ES6 进行相同类型的字符串化 hackMap.

我该怎么做才能可靠地使用数组作为 ES6 的键Map?


了解 ES2015 Map 键的比较(几乎)就像与===操作员。两个数组实例,即使它们包含相同的值,也永远不会比较===对彼此。

尝试这个:

var a = new Map(), key = ['x', 'y'];
a.set(key, 1);
console.log(a.get(key));

由于 Map 类旨在用作基类,因此您可以实现具有重写的子类.get()功能,也许吧。

(第一句中的“几乎”是为了反映Map键相等性比较是通过以下方式完成的事实Object.is(),这在日常编码中不会出现太多。它本质上是一个thirdJavaScript 中相等性测试的变体。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Array 对象作为 ES6 Map 的键 的相关文章

  • 为什么我的淘汰单选按钮在另一个具有点击绑定的元素内时会失败?

    我有一个单选按钮列表 我想要点击 li 他们还检查单选按钮 这一切都有效 直到我放了一个name单选元素上的属性 然后我的代码停止工作 我的代码如下所示 ul li li ul li
  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 删除近排序数组中未排序/离群元素

    给定一个像这样的数组 15 14 12 3 10 4 2 1 我如何确定哪些元素乱序并删除它们 在本例中为数字 3 我不想对列表进行排序 而是检测异常值并将其删除 另一个例子 13 12 4 9 8 6 7 3 2 我希望能够删除 4 和
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • React-Redux:state.setIn() 和 state.set() 有什么区别?

    我见过使用setIn and set 在一些react redux代码中 state setIn state set 我在这里找到了一些文档https facebook github io immutable js https facebo
  • Bootstrap按钮加载+Ajax

    我正在使用 Twitter Bootstrap 的按钮加载状态 http twitter github com bootstrap javascript html buttons http twitter github com bootst
  • Angular - CSS - 自定义类型=文件输入,如何使用按钮而不是标签?

    我制作了一个类型为 file 的自定义输入字段 因为我不喜欢默认的输入字段 为了实现这一目标 我做了
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • 对于只触及我的工作表的 Google 表格脚本,收到“此应用程序未经验证”

    我正在编写一个 Google Sheets 脚本 我只想访问与 gs 文件关联的同一电子表格中的数据 似乎我应该有权在自己的电子表格中运行脚本 但是每当我运行一个函数时 我都会得到一个This app isn t verified信息 我该
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 如何隐藏/禁用 Highcharts.js 中的图例框?

    我想问是否可以使用 HighCharts js 库隐藏图表中的所有图例框 var chart object chart renderTo render to type graph type colors graph colors title
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接

随机推荐

  • Redis 和 Membase 之间的主要区别是什么?

    Redis 和 Membase 之间的主要区别是什么 可扩展性 Membase 提供分布式键 值存储 就像 Memcache 一样 因此无论数据集有多大 写入和读取都将始终在可预测的恒定时间内执行 另一方面 Redis 只提供主从复制 可以
  • 当页面为 HTTPS 时 URLReferrer 为 null

    我们使用 URLReferrer 和在查询字符串中传递的代码来生成在线视频 以便只有我们的付费客户才能链接到我们的视频播放页面 该系统已经运行良好一段时间了 我知道 URL 引荐来源网址可能会被欺骗 但谁会告诉他们的客户做这样的事情来访问视
  • 使用字典替换文本文件中的单词

    我正在尝试打开一个文本文件 然后通读它 用存储在字典中的字符串替换某些字符串 根据以下问题的答案如何在 Python 中编辑文本文件 我可以在进行替换之前取出字典值 但循环字典似乎更有效 该代码不会产生任何错误 但也不会进行任何替换 imp
  • Node.js 中的 New Date() 时间错误

    考虑 root ubuntu firma Exotech heart beat heart beat service date Mon Apr 24 17 07 52 CEST 2017 root ubuntu firma Exotech
  • RabbitMQ 向每个消费者发送相同的消息

    我已经实现了 RabbitMQ 网站上的示例 RabbitMQ 示例 我已将其扩展为带有一个用于发送消息的按钮的应用程序 现在我在两台不同的计算机上启动了两个消费者 当我发送消息时 第一条消息发送到computer1 然后第二条消息发送到c
  • 如何使用 Javascript 动态嵌入 Java 小程序?

    我希望能够使用按下按钮时调用的 Javascript 函数动态地将 Java 小程序插入网页中 在页面加载时加载小程序会减慢速度太多 冻结浏览器等 我使用以下代码 它在 FF 中无缝工作 但在 IE8 Safari 4 和 Chrome 中
  • 简单 CRUD 的 EJB 3 会话 Bean 设计

    我正在编写一个应用程序 其唯一目的是执行 CRUD 操作以维护数据库中的记录 一些表 实体之间存在关系 我见过的创建会话 bean 的大多数示例都涉及与许多我没有的实体交互的复杂业务逻辑 操作 由于我的应用程序非常基础 那么会话 bean
  • Spring Boot Oauth2 扩展 DefaultTokenServices

    我有一个 OAuth2 实现 对于授予类型 密码运行良好 现在我需要添加一个逻辑 如果用户之前登录 则限制相同的用户 密码组合允许再次登录 为此 我研究并认为我要创建一个扩展 DefaultTokenServices 类的新类 MyDefa
  • 覆盖 Angular 默认日期管道

    我需要覆盖默认的 Angular 7 日期管道格式 medium short fullDate等 因为我不想使用两个日期管道 默认一个和自定义一个 所以我做了以下操作 并且想知道这样做是个好主意 extend date pipe ts im
  • 如何在/proc/driver下创建proc条目?

    我想在 a 下创建一个文件 proc driver目录 我想使用像这样的宏proc root driver 或提供的其他内容 而不是显式使用 driver MODULE NAME 我用create proc entry struct pro
  • 使用 IsCancellationRequested 属性?

    有什么用CancellationToken s IsCancellationRequested财产 考虑下面的代码 static void Main string args CancellationTokenSource tokenSour
  • 二叉搜索树的平均高度

    添加 1000 个随机整数时 如何计算二叉搜索树的平均高度 平均身高是多少 这个问题让我问你是否可以在不实际生成树的情况下最终解决这个问题 我设法编写了一个应用程序 如果您将 N 个唯一数字的所有可能排列添加到一个简单实现的二叉树中 它可以
  • 从 python 列表项中删除单引号

    其实很简单的问题 我有一个 python 列表 例如 1 2 3 4 只是想知道如何去掉那些单引号 我想 1 2 3 4 目前列表中的所有值都是字符串 而您希望它们是整数 以下是两种最简单的方法 map int your list and
  • 自定义按钮框架看起来不如圆形矩形 UIButton

    我正在尝试绘制自定义按钮框架 如下所示 UIBezierPath stroke UIBezierPath bezierPathWithRoundedRect self bounds cornerRadius RECT CORNECR RAD
  • 使用 Python 请求发送 ASP.net POST

    我正在使用 Python 的请求模块抓取一个旧的 ASP net 网站 我花了 5 个多小时试图弄清楚如何模拟这个 POST 请求 但没有成功 按照我下面的方式执行此操作 我基本上会收到一条消息 没有项目与此项目引用匹配 任何帮助将不胜感激
  • 协议相关 URL 是相对 URL 吗?

    所以考虑一个协议相关 URL像这样 www example com file jpg 从我记事起 我脑子里就一直有这样的想法 协议相对 URL 实际上是绝对 URL 它们的行为与绝对 URL 完全相同 但绝不像相对 URL 那样工作 我不希
  • 在Python中将FFT绘制为一组正弦波?

    我在演示中看到有人这样做 但我很难重现他能够做到的事情 这是他演讲中的一张幻灯片 很酷 他使用 FFT 分解数据集 然后绘制 FFT 指定的适当正弦波 因此 为了重现他所做的事情 我创建了一系列对应于 2 个正弦波组合的点 import m
  • 如何完全清除 minikube 配置或将 IP 重置回 192.168.99.100

    我想彻底清除 Minikube 这样我就可以像第一次安装它一样重新开始 以避免一些配置冲突 Mailnly 的初始 IP 为 192 168 99 100 不幸的是它会在接下来的时间里增加minikube start到192 168 99
  • QAudioDeviceInfo 在 Ubuntu 上找不到默认音频设备

    我正在尝试运行基本示例QAudioDeviceInfo 类参考 但 Qt 未找到默认音频设备 运行此代码没有显示任何输出 foreach const QAudioDeviceInfo deviceInfo QAudioDeviceInfo
  • 使用 Array 对象作为 ES6 Map 的键

    我正在尝试将我的代码更新到 ES6 因为我正在使用 Node 4 0 并且到目前为止非常喜欢它的功能 但是我对新的 ES6 有问题Map数据结构 因为它的行为不同 使用时Array作为钥匙 我用它作为柜台地图 我运行这段代码 我想知道如何使