提问人:1Z10 提问时间:5/10/2018 更新时间:5/14/2018 访问量:20959
TypeScript:地图有键(对象)不起作用
TypeScript: Map has key (object) not working
问:
我在检查地图是否已经有一个对象作为键时遇到了一些麻烦。
例如
const myMap: Map<MyObject1, MyObject2> = new Map<MyObject1, MyObject2>();
我还在 MyObject1 类中定义了一个等于函数
equals(other: ThreatAgentMgm): boolean {
return other.id === this.id;
}
但总是假的。
我读到has方法基于===运算符,我应该在MyObject1类中定义其他内容吗?myMap.has(myObject1)
答:
8赞
1Z10
5/14/2018
#1
由于最终每个 JSON 对象都只是一个字符串,因此我最终使用 JSON.stringify(myObject) 作为 Map 的键,并使用几个值(MyObject1、MyObject2)作为实际值。这样,我就能够在时间 O(1) 内获得所需的值,同时保持键对象可用,而无需再次解析 JSON 或最糟糕的情况,再次从数据库中检索它。
评论
equals()
id
MyObject1
myMap.has(myObject1.id)
Set
Map
Map
JavaScript 与 Java 不同,两者都不是 JSON。🤷♂️Map