function PrintTable(tb)
for k,v in pairs(tb) do
print(v)
end
print("-------------------")
end function PrintTable2(tb)
for i,v in ipairs(tb) do
print(v)
end
print("-------------------")
end --------------------------------------------------------------A:删除
--1.删除数组(从后往前删除)
local a = {,,,,,}
local a2 = {,,,,,} --方法1(牺牲时间):
--在数组数量大且满足条件的元素多时不宜使用,因为会移动大量元素
for i=#a,,- do
if (a[i] % == ) then
table.remove(a, i)
end
end
PrintTable(a)--1,3,5 --方法2(牺牲空间):
local a3 = {}
for i=,#a2 do
if (a2[i] % ~= ) then
table.insert(a3, a2[i])
end
end
PrintTable(a3)--1,3,5 --2.删除字典(置空)
local b = {["a"]=,,,[]="b",,,} for k,v in pairs(b) do
if ((k == "a") or (type(v) == "number" and v % == )) then
b[k] = nil
end
end
PrintTable(b)--3,5,b --------------------------------------------------------------B:排序
--因为是排序,所以table必定是数组形式
--table.sort(table, function),原理是冒泡算法,相邻元素两两比较
--function返回true则表示排在前面 local c = {,,,,}
table.sort(c)--从小到大排序
PrintTable2(c)--1,2,3,4,5
table.sort(c, function(a,b) return a > b end)--从大到小排序
PrintTable2(c)--5,4,3,2,1 local c2 = {
{id=, name="e"},
{id=, name="c"},
{id=, name="a"},
{id=, name="b"},
{id=, name="d"},
}
table.sort(c2, function(a,b) return a.id < b.id end)
for i,v in ipairs(c2) do
print(v.name)
end
print("-------------------")--输出:b,c,d,a,e --多字段排序(先处理优先级低的)
--优先级:1.等级由高到低 2.id由高到低
local c3 = {
{id=, level=},
{id=, level=},
{id=, level=},
{id=, level=},
}
table.sort(c3, function(a,b)
if (a.level == b.level) then
return a.id > b.id
else
return a.level > b.level
end
end)
for i,v in ipairs(c3) do
print(v.id)
end
print("-------------------")--输出:4,3,1,2

[Lua]table(二):删除与排序的更多相关文章

  1. lua table 排序--满足多条件排序

    前提 假设 一个小怪 有三种属性,等级(level).品质(quality).id(pid) 我们需要对他们进行排序,两种排序情况,第一是单一属性排序,比如按照等级进行排序,或者多种属性进行优先级排序 ...

  2. lua table排序报错与解决

    lua table排序 table的sort函数 比如按照大小进行排序,下面这种写法在某些情况下可能会排序错误,甚至报invalid order function for sorting table. ...

  3. Lua table.sort排序

    在用table.sort 排序的时候注意,如果使用多个条件排序,应在一个排序函数里按照条件优先级进行比较排序. 例如 local t = { {time = , i = }, {time = , i ...

  4. LUA table学习笔记

    function printT( ... ) for i,v in ipairs(...) do print(i,v) end end t1={} t2={} t3={} table.insert(t ...

  5. Lua table库整理(v5.1)

    这个库提供了表处理的通用函数. 所有函数都放在表 table. 无论何时,若一个操作需要取表的长度, 这张表必须是一个真序列. table.concat(list, [, sep, [, i , [, ...

  6. lua table表

    lua table表 语法结构 创建一个 table 直接使用 "{}" 即可 table1 = {} -- 赋值 table1["name"] = " ...

  7. Lua 学习之基础篇四<Lua table(表)>

    table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组.字典等. Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil. Lua ta ...

  8. Lua table之弱引用

    Lua采用了基于垃圾收集的内存管理机制,因此对于程序员来说,在很多时候内存问题都将不再困扰他们.然而任何垃圾收集器都不是万能的,在有些特殊情况下,垃圾收集器是无法准确的判断是否应该将当前对象清理.这样 ...

  9. lua table integer index 特性

    table.maxn (table) Returns the largest positive numerical index of the given table, or zero if the t ...

随机推荐

  1. [转]Aroon Indicator

    Aroon Indicator Trend Oscillator Description The Aroon indicator, developed by Tushar Chande, indica ...

  2. ubuntu base make 未找到命令

    引用:https://blog.csdn.net/fenglibing/article/details/7096556 1.先放入UBUNTU安装盘到光盘中: 2.再按顺序执行以下的命令: sudo ...

  3. C# 基于大整数类的RSA算法实现(公钥加密私钥解密,私钥加密公钥解密)

    但是C#自带的RSA算法类RSACryptoServiceProvider只支持公钥加密私钥解密,即数字证书的使用. 所以参考了一些网上的资料写了一个RSA的算法实现.算法实现是基于网上提供的一个大整 ...

  4. 学习笔记之Supervised Learning with scikit-learn | DataCamp

    Supervised Learning with scikit-learn | DataCamp https://www.datacamp.com/courses/supervised-learnin ...

  5. PHP程序员的进阶之路

    第1阶段:初级PHP程序员 重点:把LNMP搞熟练(核心是安装配置基本操作)目标:能够完成基本的LNMP环境安装,简单配置维护:能够做基本的简单系统的PHP开发:能够在PHP中型系统中支持某个PHP功 ...

  6. error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.

    引用appcompat 类库提示 error: Error retrieving parent for item: No resource found that  matches the given ...

  7. [UE4]Cast to转换数据类型

    可以转换纯函数,这样就可以不用加执行线了.

  8. keepalived主备节点都配置vip,vip切换异常案例分析

    原文地址:http://blog.51cto.com/13599730/2161622 参考地址:https://blog.csdn.net/qq_14940627/article/details/7 ...

  9. arcgis for android 读取shp文件中文乱码解决方法

    设置注册表默认字符,即可解决中文乱码问题. 'dbfDefault' 设置方法1.开始--运行,输入”Regedit“,打开注册表.2.如是用的是 10.x 版本 ArcGIS Desktop,定位到 ...

  10. mobilehack -转

    # mobileHack##工具类网站 [HTML5 与 CSS3 技术应用评估](http://html5please.com/ "html5与css3技术应用评估") [各种奇 ...