lua中table操作,表内进行排序(升序降序)去除表内相同(重复)元素

该方法,只适合一些简单的表,key只包含数字或者只包含字符串的简单数组,但是思路都是差不多的。下面介绍两种方式,第一种:主要方法:table.sort(_table)

table.sort(_table,function(a,b) return a.id<b.id end) –“升序 <” “降序 >”,a和b是代表table里面的值,比如_table = {[1] = {[“id”] = 1,[“name”] = “xiao”},[2] = {[“id”] = 2,[“name”] = “ming”}},那么a = _table[1],b = _table[2].
注意:这个有个坑,sort它的key需要从【1】开始,所以有时候用下面这个方法更好。
在这里插入图片描述

下面是lua去除表内重复元素,网上看了很多方法,有时候不需要那么复杂,(有更好的方式,请一定要跟我说一下。这个方法只适合小数据操作)。

需求是将100条数据,把相同的奖励按照区间的方式显示出来,“4-10,11-30……”,下面是数据部分截图:
在这里插入图片描述
思路是直接比较reward数据内容(也可以取出{}内的数值进行比较,但是比较繁琐,这里直接比较两个值。)
下列是方法:
在这里插入图片描述
得到最后的结果:
在这里插入图片描述
第二种,下面是比较常用的方法

function Testtable:DeleteTheSameElement(table)
        local exist = {}
        --把相同的元素进行覆盖掉
        for v, value in pairs(table) do
            exist[value] = true  --value进行保存 当成一个key
        end
        --重新排序表
        local newTable = {}
        for v, k in pairs(exist) do
            table.insert(newTable, v)--这里的v就相当于上面的value
        end
        return newTable --返回已经去重的表
end
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值