我是靠谱客的博主 内向飞鸟,最近开发中收集的这篇文章主要介绍【Lua】Table根据value排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用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排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部