使用lua开发需要把有用的数据全部存进Table里,lua也提供了一个sort接口来给table排序,但是sort的实现也是基于冒泡排序,他默认table的key是从1开始的,
这样就会造成当我们的key是一些特殊的标志位,比如游戏中背包数据的GUID,就会无法正常排序。所以我们需要单独封一个接口来实现通过value来排序的功能
下面就以装备列表中,Key为GUID 通过装备部位来排序的例子
复制代码
OK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18function pairsByKeys(t) local tempTable = { } for i,v in pairs(t) do local temp = #tempTable + 1 tempTable[temp] = {} tempTable[temp].guid = i tempTable[temp].EquipPart = v.EquipPart end table.sort(a,function(m,n) return m.EquipPart < n.EquipPart end) local count = 0 return function() count = count + 1 local k = tempTable[count] local v = nil if k then k = tempTable[count].guid v = testc[tempTable[count].guid] end return k,v end end
当我们需要排序的时候类似这样 for i,v in pairsByKeys(t) do 就可以让装备补位从小到大输出了
最后
以上就是内向飞鸟最近收集整理的关于【Lua】Table根据value排序的全部内容,更多相关【Lua】Table根据value排序内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复