TypeScript: на карте есть ключ (объект) не работает - PullRequest
0 голосов
/ 10 мая 2018

У меня возникают проблемы при проверке, есть ли на карте объект в качестве ключа.

например,

const myMap: Map<MyObject1, MyObject2> = new Map<MyObject1, MyObject2>();

Я также определил функцию равенства в классе MyObject1

equals(other: ThreatAgentMgm): boolean {
    return other.id === this.id;
}

но myMap.has(myObject1) всегда ложно.Я прочитал, что метод has основан на операторе ===. Должен ли я определить что-то еще в классе MyObject1?

1 Ответ

0 голосов
/ 13 мая 2018

Поскольку каждый объект JSON в конце является просто строкой, я в конечном итоге использовал JSON.stringify (myObject) в качестве ключа карты и пару значений (MyObject1, MyObject2) в качестве фактического значения.Таким образом, я могу получить желаемое значение за время O (1), сохраняя доступ к ключевому объекту, без необходимости повторного анализа JSON или, что еще хуже, извлечения его из БД еще раз.

...