Мне нужна помощь. Я делаю что-то вроде словаря (но вы его заполняете сами). Мне нужен быстрый поиск слов в нем. Мне нужно использовать Object или Array (потому что словарь не поддерживается JSON. Существует возможность сохранения файла). У меня есть этот код, но я боюсь, что он не настолько оптимизирован для быстрого поиска, когда в массиве будет много слов. Пожалуйста помоги.AS3 - Быстрый поиск по массиву со строками
public function Search (string:String,section:String = Wordbook.NEWW):int
{
var str:String = string.toUpperCase();
for (i = 0; i < NewWords.length; i++)
{
if (NewWords[i].toUpperCase.indexOf(str) > -1)
{
return i;
}
}
return -1;//If not found
}
И пример того, как он должен работать: (SearchTxt - текстовое поле, пользователь должен ввести здесь слово ему нужно найти; WB - класс Wordbook; WB.NewWords & WB.NewWordsT - Массивы в этом классе)
var index:int = WB.Search(SearchTxt.text,Wordbook.NEWW);
if(index>-1){
WordTxt.text = WB.NewWords[index];
TranslationTxt.text = WB.NewWordsT[index];
} else {
dispatchEvent(new EventWithMessage(EventWithMessage.ERROR,{error:"No match!"}));
}
Почему бы 'Dictionary' быть быстрее для этого? Он не включает никаких специальных функций поиска, он просто строит строгое тестирование равенства. – CyanAngel
@CyanAngel. Спасибо за жемчужину мудрости, но, может быть, у вас есть еще один, который поможет мне? :) –
Добавьте небольшой образец данных, которые вы можете найти, и критерии поиска, которые вы могли бы ожидать. Я не ожидаю в оптимизации поиска, но такие образцы облегчат тем, кто может что-то знать – CyanAngel