У меня есть следующая структураКак отсортировать этот стол lua?
self.modules = {
["Announcements"] = {
priority = 0,
-- Tons of other attributes
},
["Healthbar"] = {
priority = 40,
-- Tons of other attributes
},
["Powerbar"] = {
priority = 35,
-- Tons of other attributes
},
}
Мне нужно сортировать эту таблицу с помощью агентом PRIORITY DESC, другие значения не имеет значения. . Сначала заходите в панель «Здоровье», затем «Powerbar», а затем переходите ко всем остальным.
// редактируем.
Ключи должны быть сохранены.
// редактировать # 2
Найдено решение, спасибо всем вам.
local function pairsByPriority(t)
local registry = {}
for k, v in pairs(t) do
tinsert(registry, {k, v.priority})
end
tsort(registry, function(a, b) return a[2] > b[2] end)
local i = 0
local iter = function()
i = i + 1
if (registry[i] ~= nil) then
return registry[i][1], t[registry[i][1]]
end
return nil
end
return iter
end
Что вы подразумеваете под сортировкой? Таблицы со строковыми ключами несортированы. Чтобы отсортировать его, вам нужно будет изменить структуру данных. Каков ваш ожидаемый результат? – ahilsend
Возможный дубликат [Сортировка таблицы \ [\] в Lua] (http://stackoverflow.com/questions/15706270/sort-a-table-in-lua) – ahilsend