キーと値のペアで構成されるテーブルがあります。
mytable[a] = 1,
mytable[b] = 4,
mytable[r] = 7,
mytable[f] = 2,
等
テーブルを数字で並べ替えたい。だから私はテーブルを{(a、1)、(f、2)、(b、4)、(r、7)}にしたいと思います
table.sort(mytable, function(a, b) return a[2] > b[2] end)
しかし、それはうまくいかなかったようです...ありがとう
「ProgrammingLua」で提案されている1つの方法(正確な場所は覚えていません)は、キーを別のシーケンスに抽出してからシーケンスを並べ替え、その結果の並べ替えられたシーケンスを使用して元のテーブルにインデックスを付けることです。例:
keys = {}
for key, _ in pairs(mytable) do
table.insert(keys, key)
end
table.sort(keys, function(keyLhs, keyRhs) return mytable[keyLhs] < mytable[keyRhs] end)
次に、キーを繰り返し処理して、対応する値を取得できます。
for _, key in ipairs(keys) do
print(key, mytable[key])
end
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加