Javascript сортировать массив, сопоставляя строку - PullRequest
1 голос
/ 10 декабря 2011

У меня есть массив, содержащий результаты из кода геолокации.Я хочу отсортировать его по самому близкому совпадению с искомым термином.

Пример.Поиск: Pizza.

Array: Pizza Uno, Pizzeria Uno, Burgers and Pizzeria, Cino Pizzeria. 

Отсортированный массив должен быть:

Pizza Uno,
Pizzeria Uno,
Burgers and Pizzeria,
Cino Pizzeria. 

Спасибо за вашу помощь.

Ответы [ 3 ]

3 голосов
/ 05 сентября 2013

Как насчет этого?Это был мой первый подход к получению имени ближайшего цвета в зависимости от шестнадцатеричного цвета .

Конечно, есть лучшее решение, вы можете, например, взглянуть на1005 * алгоритм, который действительно намного быстрее, чем подход Левенштейна .

Однако это должно работать для вас, как и ожидалось.

2 голосов
/ 10 декабря 2011

Действительно базовый алгоритм, который бы работал, состоял бы в сортировке в зависимости от того, какой процент от общей длины строки занимает совпадение. Таким образом, точное совпадение «Пицца» будет 5/5 (100%), совпадение «Пицца Уно» будет 5/9, «Пиццерия Уно» 4/12 и так далее. Это один из основных компонентов алгоритма естественной сортировки MySQL в его самом основном.

0 голосов
/ 10 декабря 2011

Вы можете попробовать вычислить Расстояние Левенштейна между 2 строками.Это в основном количество шагов, которое нужно сделать, чтобы две строки были одинаковыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...