【问题标题】:How to access values of keys that are objects in js Map如何访问作为js Map中对象的键的值
【发布时间】:2021-09-30 07:16:45
【问题描述】:

我正在尝试使用对象作为键将值存储在 JavaScript 映射中。但是我无法使用 Map 对象提供的 get 方法访问它们。这就是我想要做的-

let map1 = new Map();
map1.set({a: 1}, "valueforobject");
console.log(map1.get({a: 1})); //expected this to print valueforobject but got undefined

当我记录地图本身时,我可以确保该值已安全存储。如何使用 get 方法或此处适当的任何其他方式访问它?

【问题讨论】:

  • 了解以下内容可能会有所帮助...{a: 1} !== {a: 1} ...但var a = {a: 1}; a === a;
  • Bravo 谢谢你写的东西,在这种情况下,我如何在 Map 中使用对象键存储值并在以后安全地访问它。或者我根本不应该使用它,在这种情况下我的替代方案是什么?
  • 哦,我认为如果你明白为什么该评论是相关的,那将是显而易见的......这里它与你的代码 100% 相关 - var a= {a:1}; map1.set(a, "valueforobject");console.log(map1.get(a));
  • 我实际上将根据用例构造对象,以便稍后从映射中获取值。这就是为什么这没有用。
  • 好的,所以以对象为键的地图不是合适的工具——你需要使用不同的方式来制作键,或者完全不同的对象——如果你小心的话,您可以使用JSON.stringify({a:1}) 作为键

标签: javascript hashmap


【解决方案1】:

这行得通。看看official documentation

let map1 = new Map();
let keyobj = {a: 1};
map1.set(keyobj, "valueforobject");
console.log(map1.get(keyobj)); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-23
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多