在检查 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检索它。

09-08 07:20