Скажем, у меня есть набор различных URL-адресов в массиве:
var source = ['www.xyz.com/Product/1', 'www.xyz.com/Product/3', 'www.xyz.com/Category/1', 'somestring']
Что было бы хорошим способом перебора массива и группировки подобных строк в отдельный массив? Желаемый результат из приведенного выше примера:
var output = [
['www.xyz.com/Product/1', 'www.xyz.com/Product/3'],
['www.xyz.com/Category/1'],
['somestring']
];
Условия
- Все элементы в
source
могут быть случайными строками - Логика должна иметь возможность сравнивать и группировать около 100 000 элементов в значимое время.
Я нашел библиотеку схожести строк, которая дает возможность сравнить одну строку с коллекцией строк. Один из способов - перебрать исходный код, сравнить каждый элемент с исходной коллекцией и применить правило для группировки элементов с аналогичным счетом. Однако, я думаю, это было бы ужасно неэффективно.
Может ли кто-нибудь предложить мне эффективный способ выполнить то, что мне нужно?