Как быстро проверить есть ли в массиве нужная строка?
Подскажите способ или алгоритмик как эффективно по скорости проверить есть ли строка в массиве - это массив md5 хэшей?
Или как организовать проверку существует ли наш md5 хэш в списке? |
Вы знакомы с Хеш-таблицами! ?
|
Стандартный, но довольно быстрый способ (в древних браузерах нуно писать самому)
['a', 'b', 'c'].indexOf('c'), ну а вообще лучше для таких вещей юзать хешик. |
Цитата:
|
Простой IndexOf не подходит, т.к. в большом массиве частые проверки будут слишком медленными. Нужно как в базе данных - нахождение ключа по быстрому алгоритму. Но в данном случае не таблица, а просто список md5 строк.
Цитата:
|
Цитата:
|
Цитата:
var md5 = "790ae61799df4458e8a66aec1dd51e9c"; hashes.push( {md5:null} );Так? Не получается: var hashes=[]; var md5 = "790ae61799df4458e8a66aec1dd51e9c"; hashes.push( {md5:null} ); alert( md5 in hashes );выдает false |
Цитата:
null, undefined, false, true - это всё объекты на которые будет храниться ссылка. |
Почемучкин,
var hash = {}; var md5 = "790ae61799df4458e8a66aec1dd51e9c"; hash[ md5 ] = null; alert( md5 in hash ); // or alert( hash[ md5 ] ); Цитата:
|
Цитата:
Но данные вещи ведут себя именно как js обекты, т.е. не создаётся новых экземпляров и не присваивается значение - только ссылка.) Т.е. память лишня не тртится. |
Часовой пояс GMT +3, время: 08:56. |