【发布时间】: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