Хеш таблица в JS
От: AntonAD  
Дата: 28.08.09 06:24
Оценка:
Возникла следующая задача — сделать хеш таблицу в которой ключом будет произвольный объект.
Выяснил, что хеш от объекта рассчитывается на основе строки возвращаемой ToString.
Соответственно по-умолчанию у всех объектов одинаковый результат ToString.
При этом сами объекты можно сравнить на < > =.

Подскажите как можно организовать организовать быстрый поиск по ключам-объектам стандартными средствами JS, не используя внешних компонент.
Re: Хеш таблица в JS
От: . Великобритания  
Дата: 28.08.09 10:06
Оценка:
AntonAD wrote:

> Подскажите как можно организовать организовать быстрый поиск по

> ключам-объектам стандартными средствами JS, не используя внешних компонент.
В кратце: сделай метод у твоего ключа-объекта для перевода его в строку, идентифицирующую объект, и используй её как ключ в обычном мапе.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: Хеш таблица в JS
От: AntonAD  
Дата: 28.08.09 11:38
Оценка:
Здравствуйте, ., Вы писали:

.>AntonAD wrote:


>> Подскажите как можно организовать организовать быстрый поиск по

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

В качестве ключа я использую произвольный объект, поэтому этот вариант не подходит.
Re[2]: Хеш таблица в JS
От: _Oleg_ Украина  
Дата: 28.08.09 14:09
Оценка:
Здравствуйте, ., Вы писали:

.>AntonAD wrote:


>> Подскажите как можно организовать организовать быстрый поиск по

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

К примеру, можно добавить к объекту уникальный идентификатор, и уже его значение использовать как индекс массива.

var object = {};
var data = [];
object.__UID__ = "" + Math.random();
data[object.__UID__] = "value";
alert(data[object.__UID__]);
Re[3]: Хеш таблица в JS
От: AntonAD  
Дата: 30.08.09 17:03
Оценка:
Здравствуйте, _Oleg_, Вы писали:

_O_>Здравствуйте, ., Вы писали:


.>>AntonAD wrote:


>>> Подскажите как можно организовать организовать быстрый поиск по

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

_O_>К примеру, можно добавить к объекту уникальный идентификатор, и уже его значение использовать как индекс массива.


_O_>
_O_>var object = {};
_O_>var data = [];
_O_>object.__UID__ = "" + Math.random();
_O_>data[object.__UID__] = "value";
_O_>alert(data[object.__UID__]);
_O_>


Это тоже самое что и переопределение tostring.
Объекты — произвольные, я не хочу лезть в них.
Re[3]: Хеш таблица в JS
От: Sinclair Россия https://github.com/evilguest/
Дата: 02.09.09 10:46
Оценка:
Здравствуйте, AntonAD, Вы писали:
AAD>В качестве ключа я использую произвольный объект, поэтому этот вариант не подходит.
Может, подменить ему прототип?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.