JavaScript hashmap equivalent
As made clear in update 3 on this answer, this notation:
var hash = {};
hash[X]
does not actually hash the object X
; it actually just converts X
to a string (via .toString()
if it's an object, or some other built-in conversions for various primitive types) and then looks that string up, without hashing it, in "hash
". Object equality is also not checked - if two different objects have the same string conversion, they will just overwrite each other.
Given this - are there any efficient implementations of hashmaps in JavaScript?
(For example, the second Google result of javascript hashmap
yields an implementation which is O(n) for any operation. Various other results ignore the fact that different objects with equivalent string representations overwrite each other.