Sorting 将lua中的表排序为多表组
我需要对列表进行排序Sorting 将lua中的表排序为多表组,sorting,lua,Sorting,Lua,我需要对列表进行排序\u rolls,以同时考虑用户名单和排名 _rolls = { {Username="User1", Roll=50, RankPrio=1}, {Username="User2", Roll=2, RankPrio=3}, {Username="User4", Roll=10, RankPrio=2}, {Username="User5", Roll=9, Ra
\u rolls
,以同时考虑用户名单和排名
_rolls = {
{Username="User1", Roll=50, RankPrio=1},
{Username="User2", Roll=2, RankPrio=3},
{Username="User4", Roll=10, RankPrio=2},
{Username="User5", Roll=9, RankPrio=2},
{Username="User3", Roll=32, RankPrio=2}
}
我希望列表按如下方式排序
_rolls = {
{Username="User2", Roll=2, RankPrio=3},
{Username="User3", Roll=32, RankPrio=2},
{Username="User4", Roll=10, RankPrio=2},
{Username="User5", Roll=9, RankPrio=2},
{Username="User1", Roll=50, RankPrio=1}
}
我知道我可以用它来按卷排序,但我看不到一种方法可以同时做到这两个方面
table.sort(_rolls, function(a,b) return a.Roll < b.Roll end)
table.sort(_rolls,函数(a,b)返回a.Roll
您只需编写比较函数,以便在RankPrio
字段比较相等时比较Roll
字段:
_rolls = {
{Username="User1", Roll=50, RankPrio=1},
{Username="User2", Roll=2, RankPrio=3},
{Username="User4", Roll=10, RankPrio=2},
{Username="User5", Roll=9, RankPrio=2},
{Username="User3", Roll=32, RankPrio=2}
}
table.sort(_rolls,
function (a, b)
if a.RankPrio == b.RankPrio then
return b.Roll < a.Roll
else return b.RankPrio < a.RankPrio
end
end)
我希望将
RankPrio
s分组并首先排序,然后对该组中的Roll
进行排序