jedbez Posted January 23, 2014 Share Posted January 23, 2014 Подскажите как можно отсортировать массив по индексу. Есть: local array={ ["Гав"]={ON=true}, ["Мяу"]={ON=true}, ["Шшшш"]={ON=true}, ["Апорт"]={ON=true},} Вывод: for key,val in array do LogInfo("key = ",key,", val = ",val) end Соответственно получаю: Info: addon : key = Апорт, val = table: 043308C8Info: addon : key = Шшшш, val = table: 043308A0Info: addon : key = Гав, val = table: 4A030B08Info: addon : key = Мяу, val = table: 4A030B88 При сортировке: local a local b table.sort(array, function(a,b ) return a>b end) Эффекта нет, выводит тоже самое..... Quote Link to comment Share on other sites More sharing options...
Zaam Posted January 23, 2014 Share Posted January 23, 2014 А разве table.sort работает с какими-то индексами, кроме целочисленных в диапазоне [1, table.maxn]? Напиши сортировку вручную. Quote Link to comment Share on other sites More sharing options...
logg Posted January 23, 2014 Share Posted January 23, 2014 table сорт работает только как описано выше, еще и переставляет одинаковые элементы, как захочет. Посмотри пример сортировки в GuildGui Quote Link to comment Share on other sites More sharing options...
owen.brown70 Posted March 26, 2014 Share Posted March 26, 2014 Если нет встроенной сортировки в самой реализации языка, то возможно стоит реализовать все самому. Тут можно найти подробное описание и реализацию основных алгоритмов сортировки массива. Quote Link to comment Share on other sites More sharing options...
Recommended Posts