Как указано в обновлении 3 на этом ответе, это обозначение:
var hash = {};
hash[X]
фактически не хэш-объект X
; он фактически преобразует X
в строку (через .toString()
, если это объект или некоторые другие встроенные преобразования для разных примитивных типов), а затем выглядит, что строка вверх, без хэширования, в "hash
". Идентификация объекта также не проверяется - если два разных объекта имеют одно и то же преобразование строк, они просто перезаписывают друг друга.
Учитывая это - существуют ли какие-либо эффективные реализации хэшмапов в javascript? (Например, второй результат Google javascript hashmap
дает реализацию, которая является O (n) для любой операции. Различные другие результаты игнорируют факт что разные объекты с эквивалентными строковыми представлениями переписывают друг друга.