当前位置: 首页 > 编程笔记 >

Javascript Map vs Object —什么时候?

张姚石
2023-03-14
本文向大家介绍Javascript Map vs Object —什么时候?,包括了Javascript Map vs Object —什么时候?的使用技巧和注意事项,需要的朋友参考一下

根据MDN Docs,

Map对象保存键值对,并记住键的原始插入顺序。任何值(对象值和原始值)都可以用作键或值。

这里要注意的重要一点是,对象也可以用作映射中的键。JavaScript对象不是这种情况。JS对象仅允许将基元用作键。

使它在某些情况下有用的另一个功能是可迭代的。并且可以按插入顺序进行迭代。因此,在需要维护键顺序并具有与之关联的值的情况下,可以使用映射。

示例

映射的用法示例-

const myMap = new Map();
const keyString = 'a string',
const keyObj = {},
const keyFunc = function() {};
//用各种键设置值
myMap.set(keyString, "String Val");
myMap.set(keyObj, 'Object val');
myMap.set(keyFunc, 'function val');
console.log(myMap.size);
console.log(myMap.get(keyString));

输出结果

这将给出输出-

3
String Val
 类似资料:
  • 我创建了一个类(正如书中所说)来保存从键盘输入的一个人的姓名和姓氏,然后还有另一个类,它将一个人的国家代码、区号和号码封装为字符串 Person将用作Hashmap中的键 Class封装了和。许多对象组成了一个表示电话簿的HashMap。 实现了

  • 本文向大家介绍什么时候用delegate,什么时候用Notification?相关面试题,主要包含被问及什么时候用delegate,什么时候用Notification?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate针对one-to-one关系,并且reciever可以返回值 给sender,notification 可以针对one-to-one/many/none,recieve

  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 我是一名即将毕业的计算机科学专业的学生,​​在我的整个编码生涯中,我发现很少使用枚举的实例,除了典型的情况(例如代表标准纸牌的面孔)外,还使用了枚举。 您是否知道在日常编码中使用枚举的任何巧妙方法? 为什么枚举如此重要,在什么情况下应该能够确定建立枚举是最佳方法? 问题答案: 这些是主要的论点,以及短的例子。 的情况 从Java 6开始,是一个凌乱类的示例,该类可以从使用中受益匪浅(除

  • 问题内容: 我正在尝试通过对象读取命令。为了检查输入语法,我使用了(对于缺少命令的情况)。在许多情况下,它确实可以正常工作,但是现在我有了JavaAPI中描述为“ MAY块并等待输入”的情况。 该方法什么时候阻止,我该如何控制?有趣的是,在块之前有3个案例,它工作得很好。另外,JavaAPI还描述了检查是否存在另一个Input的正确方法,以使该Method 不会产生。 这是我到目前为止所产生的代码

  • 问题内容: 我知道Java中的垃圾回收是自动化的。但是我知道,如果你调用代码,那么JVM可能会或可能不会决定此时执行垃圾回收。这究竟如何工作?JVM看到时会根据什么基础/参数确切地决定执行(或不执行)? 在这种情况下,是否有任何示例是个好主意呢? 问题答案: 实际上,它通常决定进行垃圾回收。答案取决于许多因素,例如您正在运行的JVM,它处于哪种模式以及正在使用哪种垃圾收集算法。 我不会在您的代码中

  • 我正在尝试通过对象读取命令。为了检查输入语法,我使用<code>sc。hasNext()(对于缺少命令的情况)。它已经在很多情况下运行良好,但现在我看到了JavaAPI中描述的“MAY block and wait for Input”的情况。 方法何时阻塞,我如何控制它?有趣的是,在街区前的3个案例中,它工作得非常好。此外,JavaAPI还将描述为检查是否存在另一个Input的正确方法,从而使方

  • 问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的