@wb_by
Учусь

Почему Rust нужна хэш-функция для реализации объектов, а JS такое не использует?

Изучаю rust, дошел до структуры данных HashMap. По сути это просто структура данных позволяющая хранить данные в виде ключ => значение. То есть простой объект из которого состоит все в JS. Я думал это реализовано как-то просто в Rust тоже, но там целая наука в этом плане) HashMap в Rust основан на массиве и чтобы ассоциировать строку-ключ с индексом используется целая хэш функция. Из-за этого даже могут быть коллизии и другие проблемы...

Короче мне стало интересно почему в JS такого нет? Или может быть под капотом все объекты в JS это тоже массивы и просто все чательно скрыли от меня?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Вообще объекты в JS - это тоже hashmap, и в этой структуре есть защита от коллизий:
Если вдруг два разных ключа получили один и тот же хеш, то они складываются в одну корзину, и при попытке получить значение по ключу - придётся ещё пройтись по всем парам ключ-значение в этой корзине, чтобы найти нужный ключ, уже используя Eq.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SNVMK
@SNVMK
Есть здесь хеш таблица. А Map по вашему что такое? Хеш таблица. А про массивы - это массивы являются объектами, а не наоборот :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы