在检查 map 是否已经有一个对象作为键时遇到了一些麻烦。
例如
const myMap: Map<MyObject1, MyObject2> = new Map<MyObject1, MyObject2>();
我还在MyObject1类中定义了一个equals函数
equals(other: ThreatAgentMgm): boolean {
return other.id === this.id;
}
但
myMap.has(myObject1)
始终为假。我阅读了has方法基于===运算符,我应该在MyObject1类中定义其他内容吗?
最佳答案
由于最后的每个JSON对象都是一个字符串,因此我最终使用JSON.stringify(myObject)作为Map的键,并使用了两个值(MyObject1,MyObject2)作为实际值。这样,我就可以在时间O(1)内获得所需的值,同时保持键对象可用,而无需再次解析JSON或更糟糕的是,再次从DB检索它。