Я не знаю, в частности, о Java и Javascript, но многие языки предоставляют некую структуру данных массива, которая может быть отсортирована лексикографически Итак, как вы сказали, преобразуйте «a.example.com» в {«com», «example», «a»} и просто запустите стандартные правила сортировки. Лексикографическая сортировка будет делать то, что вы хотите.
Если у вас есть список локальных доменов, а также полные доменные имена, я согласен, что вы захотите выделить их. Все, что не имеет периода, может быть отфильтровано первым. Или вы можете разрешить их все до полного доменного имени, а затем просто отсортировать весь список.
Некоторый код Python, который делает это (должен отображаться в Javascript довольно близко):
hosts = ["a.foo.com", "b.foo.com", "foo.com", "c.bar.com"]
split_hosts = []
for h in hosts:
segments = h.split('.')
segments.reverse()
split_hosts.append(segments)
split_hosts.sort()
for segments in split_hosts:
segments.reverse()
print ".".join(segments)
Это печатает:
c.bar.com
foo.com
a.foo.com
b.foo.com