TypeScript:Map的键(对象)不起作用

时间:2018-05-10 13:58:57

标签: typescript dictionary equality

在检查地图是否已将对象作为关键字时,我遇到了一些麻烦。

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类中定义其他东西吗?

1 个答案:

答案 0 :(得分:0)

由于最后的每个JSON对象只是一个字符串,我最终使用JSON.stringify(myObject)作为Map的键,并使用几个值(MyObject1,MyObject2)作为实际值。通过这种方式,我可以在保持密钥对象可用的同时在时间O(1)中获得所需的值,而无需再次或最差地解析JSON,再次从DB中检索它。