javascript - 在 Javascript 中获取和设置 map 中的值

标签 javascript

我试图像 JavaScript 中的对象一样获取和设置 map 的值。我成功地做到了这一点。我仍然怀疑这是否是正确的方法,或者我的代码是否会随时崩溃?

    m = new Map();
    Map {}
    > m.set('a', 1) //set value
    Map { 'a' => 1 }
    > m.get('a') //get it
    1
    > m['b'] = 2 //try using more convenient [] notation
    2
    > m['b'] //it works!
    2

虽然这对于这个特定场景或其他场景来说效果很好,但是否存在使用 m['b'] 获取 map 会失败的场景?

最佳答案

它们不一样。当您使用方括号表示法(或点表示法)而不是 .set.get 时,您将 Map 用作 < em>普通对象,而不是Map。例如,如果您随后尝试使用 m.get 访问 b,它将不起作用,因为 b 不是键在 map 中,而是m对象的属性:

const m = new Map();
m.set('a', 1) //set value
m['b'] = 2 //try using more convenient [] notation
m['b'] //it works!
console.log(m.get('b')) // ...or not

可以使用Map作为这样的对象,并获取/设置任意属性,而不是.get。 set 方法,但这会很困惑。最好在适当的时候使用普通对象,或者将 Map.get.set 方法一起使用 - 但不要混合使用这两种方法语法。

关于javascript - 在 Javascript 中获取和设置 map 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416329/

相关文章:

javascript - 我的脚本只运行一次,我想要无限次而不重新加载 html 页面

javascript - 我只想从下拉列表中选择数字,但在列表中它具有相同的值字母数字和数字在 Cypress

javascript - 不使用 eval() 计算字符串

javascript - Div 和 ul 并排列出

javascript - polymer 1.x : Pre-load element attributes

javascript - javascript中的for循环以增量方式访问元素

javascript - 上传多个文件时,文件名显示在带有删除按钮的文本框中

javascript - 如何获取 FaunaDB 中某个集合的所有文档?

javascript - 只有第一个常见问题解答元素在单击时展开 - jquery

javascript - HTML5=HTML+CSS+Javascript吗