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 に答える