У меня есть большой массив слов в Javascript (~ 100 000), и я хотел бы иметь возможность быстро возвращать подмножество их на основе текстового шаблона.
Например, яЯ хотел бы вернуть все слова, начинающиеся с шаблона, поэтому при наборе hap
в результате получится ["happy", "happiness", "happening", etc, etc]
.
Если возможно, я бы хотел сделать это без итерации по всему массиву.
Что-то вроде этого работает недостаточно быстро:
// data contains an array of beginnings of words e.g. 'hap'
$.each(data, function(key, possibleWord) {
found = $.inArray(possibleWord, words);
// do something if found
}
Любые идеи о том, как я мог бы быстро сократить набор до возможных совпадений без перебора всего набора слов?Массив слов в алфавитном порядке, если это помогает.