在检查地图是否已将对象作为关键字时,我遇到了一些麻烦。
e.g。
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类中定义其他东西吗?
答案 0 :(得分:0)
由于最后的每个JSON对象只是一个字符串,我最终使用JSON.stringify(myObject)作为Map的键,并使用几个值(MyObject1,MyObject2)作为实际值。通过这种方式,我可以在保持密钥对象可用的同时在时间O(1)中获得所需的值,而无需再次或最差地解析JSON,再次从DB中检索它。