Hashtable против объектов в JavaScript - PullRequest
0 голосов
/ 05 июля 2019

Я новичок в структуре данных и изучаю ее в Javascript.

Мой вопрос: Зачем нам нужны хеш-таблицы, когда у нас есть объекты в JavaScript? Кто-нибудь может дать мне ситуацию, когда хеш-таблицы будут более полезными, чем объекты?

Ответы [ 3 ]

1 голос
/ 05 июля 2019

Думаю, что вы имеете в виду Map вместо HashTable. ИМХО Карта может быть более полезной и лучше работать, если вам нужно одно из этого:

  • сохранить порядок вставки пар ключ / значение;
  • частое добавление и удаление;
  • ключ, который не String / Symbol.

Я думаю, вы можете получить больше информации по MDN

1 голос
/ 05 июля 2019

«Hashtable» называется разными вещами на разных языках. Java имеет Hashtable и HashMap, Ruby имеет Hash, Python имеет dict ... в JavaScript это называется Map.

Ключи объектов ограничены строками; Map ключи могут быть любыми.

Объекты поддерживают наследование; Map содержит только то, что специально в него вставлено.

0 голосов
/ 05 июля 2019

Документы MDN по этому вопросу весьма полезны: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Objects_and_maps_compared

В частности, использование карты дает вам преимущество в использовании чего-либо в качестве ключа, карты сохраняют порядок и могут работать лучше при постоянном добавлении и удалении значений.

...