Sorting Lua迭代按值排序的表
我有一个表Sorting Lua迭代按值排序的表,sorting,lua,iterator,Sorting,Lua,Iterator,我有一个表t,有许多条目,如t[“name1”]=42,t[“name2”]=123,… 我想按数值的降序遍历该表。如何做到这一点?我已经找到了创建迭代器函数的方法,这些迭代器函数对表的键进行排序,但没有方法对具有排序值的条目进行排序 function pairs_order_by_values_desc(tab) local keys = {} for k in pairs(tab) do keys[#keys + 1] = k end table.sort
t
,有许多条目,如t[“name1”]=42
,t[“name2”]=123
,…
我想按数值的降序遍历该表。如何做到这一点?我已经找到了创建迭代器函数的方法,这些迭代器函数对表的键进行排序,但没有方法对具有排序值的条目进行排序
function pairs_order_by_values_desc(tab)
local keys = {}
for k in pairs(tab) do
keys[#keys + 1] = k
end
table.sort(keys, function(a, b) return tab[a] > tab[b] end)
local j = 0
return
function()
j = j + 1
local k = keys[j]
if k ~= nil then
return k, tab[k]
end
end
end
local t = {}
t.name1 = 42
t.name2 = 123
t.name3 = 99
for k, v in pairs_order_by_values_desc(t) do
print(k, v)
end