1

我有一个具有以下结构的表:

table = {
    [1] = {"something", "high"}
    [2] = {"something else", "low"}
    [3] = {"something further", "medium"},
    [4] = {"yet more something", "medium"},
}

我想要做的是使用委托函数使用 table.sort() 对该表进行排序,以便优先级变量(高、低、中等)对列表进行排序,列表中紧随其后的是高,然后是中然后低。我该怎么做呢?

4

2 回答 2

4

你似乎知道如何table.sort工作,所以你卡在哪里了?只需创建一个查找表,将优先级名称转换为整数并进行比较:

priorities = {high = 2, medium = 1, low = 0}
table.sort(t, function(e1, e2)
    return priorities[e1[2]] > priorities[e2[2]]
end)
于 2013-03-16T16:56:30.393 回答
0
table.sort(t, 
  function(e1, e2)
    return e1[2]:sub(-1) < e2[2]:sub(-1)
  end
)
于 2013-03-16T18:21:49.733 回答