Задача: нужно реализовать живой поиск по массиву объектов, у которых могут быть разные вариации названий. На русском, на английском, жаргонные названия, синонимы. Массив в скрипте будет сформирован заранее. В идеале, хотелось бы, чтобы в скрипте поиска можно было задать массив с синонимами, по которым он будет проходиться и выдавать результат в виде объекта.
Вот, покажу на абстрактном примере.
var countries = [
{
title: "Россия",
synonyms: ["РФ", "Russia", "Российская Федерация", "Рашн", "Роисся"]
},
{
title: "Германия",
synonyms: ["Germany", "Deutschland", "ФРГ", "ГДР", "Дойчланд"]
}
];
И когда пользователь начинает вводить что-нибудь, то скрипт бы сначала проходил по полям
title, а затем по массиву
synonyms и если находил совпадение среди синонимов, то выводил бы
title этого объекта в выпадающем списке.
Существуют ли плагины на jQuery или чистом JS, которые реализуют такой поиск?
Структуру данных, кстати, могу сформировать по другому, даже подстроиться под функционал плагина, лишь бы там была такая возможность.
Я достаточно долго искал, но, видимо, делал что-то не так, поскольку почти ничего не нашёл. Сунулся было в теорию о том, как это можно сделать самому, но быстро понял, что не с моими знаниями. Все эти расстояния Левенштейна и прочее...
P.S. Единственный вариант, который, возможно, подходит под эти критерии, который я нашёл, это —
MissPlete сейчас разбираюсь с ним.