我有一个具有以下结构的表:
table = {
[1] = {"something", "high"}
[2] = {"something else", "low"}
[3] = {"something further", "medium"},
[4] = {"yet more something", "medium"},
}
我想要做的是使用委托函数使用table.sort()对该表进行排序,以便优先级变量(高,低,中等)按列表中的高位顺序排序列表,接着是中等然后低。我该怎么做呢?
答案 0 :(得分:4)
您似乎知道table.sort
是如何运作的,那么您在哪里被困?
只需创建一个查找表,将优先级名称转换为整数并进行比较:
priorities = {high = 2, medium = 1, low = 0}
table.sort(t, function(e1, e2)
return priorities[e1[2]] > priorities[e2[2]]
end)
答案 1 :(得分:0)
table.sort(t,
function(e1, e2)
return e1[2]:sub(-1) < e2[2]:sub(-1)
end
)