4
은 내가에는 우선 순위 DESC하여이 테이블을 정렬 할 필요가루아 테이블 정렬 방법?
self.modules = {
["Announcements"] = {
priority = 0,
-- Tons of other attributes
},
["Healthbar"] = {
priority = 40,
-- Tons of other attributes
},
["Powerbar"] = {
priority = 35,
-- Tons of other attributes
},
}
다음 구조를 가지고, 다른 값은 중요하지 않습니다. 예. 건강 바 먼저, 파워 바, 그리고 다른 모든 것.
// 편집.
키를 보존해야합니다.
// 편집 # 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