如何解决将lua中的表排序为多组
我需要对列表_rolls
进行排序,以兼顾用户的排名和排名。
_rolls = {
{Username="User1",Roll=50,RankPrio=1},{Username="User2",Roll=2,RankPrio=3},{Username="User4",Roll=10,RankPrio=2},{Username="User5",Roll=9,{Username="User3",Roll=32,RankPrio=2}
}
我希望列表的排序方式
_rolls = {
{Username="User2",{Username="User1",RankPrio=1}
}
我知道我可以用它来按劳斯莱斯排序,但我看不到同时做到这两种方法。
table.sort(_rolls,function(a,b) return a.Roll < b.Roll end)
解决方法
您只需要编写比较函数,以便在Roll
字段相等时比较RankPrio
字段:
_rolls = {
{Username="User1",Roll=50,RankPrio=1},{Username="User2",Roll=2,RankPrio=3},{Username="User4",Roll=10,RankPrio=2},{Username="User5",Roll=9,{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)
> table.inspect(_rolls)
1 =
RankPrio = 3
Username = User2
Roll = 2
2 =
RankPrio = 2
Username = User3
Roll = 32
3 =
RankPrio = 2
Username = User4
Roll = 10
4 =
RankPrio = 2
Username = User5
Roll = 9
5 =
RankPrio = 1
Username = User1
Roll = 50
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。