каждый объект javascript - это простой хэш-файл, который принимает в качестве ключа только строковое значение, поэтому вы можете написать свой код следующим образом:
var map = {};
// add a item
map[key1] = value1;
// or remove it
delete map[key1];
// or determine whether a key exists
key1 in map;
объект javascript - это настоящий хэш-файл в своей реализации, поэтому сложностьпоиск - O (1), но нет выделенной функции hashcode()
для строк javascript, она реализована внутренне с помощью движка javascript (V8, SpiderMonkey, JScript.dll и т. д.)
, однако javascriptсегодня не поддерживает другой тип данных, кроме string в качестве ключа, ECMAv6 (гармония) вводит класс WeakMap, который принимает любой объект в качестве ключа, но это будет долгое время ...