概述
使用lua开发需要把有用的数据全部存进Table里,lua也提供了一个sort接口来给table排序,但是sort的实现也是基于冒泡排序,他默认table的key是从1开始的,
这样就会造成当我们的key是一些特殊的标志位,比如游戏中背包数据的GUID,就会无法正常排序。所以我们需要单独封一个接口来实现通过value来排序的功能
下面就以装备列表中,Key为GUID 通过装备部位来排序的例子
function 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
OK
当我们需要排序的时候类似这样 for i,v in pairsByKeys(t) do 就可以让装备补位从小到大输出了
最后
以上就是内向飞鸟为你收集整理的【Lua】Table根据value排序的全部内容,希望文章能够帮你解决【Lua】Table根据value排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复