lua -- 使用remove删除table数据
来源:互联网 发布:嫁コレ数据提取资料 编辑:程序博客网 时间:2024/06/18 18:51
在Lua语言中,一切皆是table,所有数据,函数都保存在table中,但是当我们使用了table后,该如何清理table表中数据呢。
先看一个函数:
table.remove(table[,pos]):删除在pos位置上的元素,后面的元素会向前一栋,然后删除的index会向前移动,导致删除后的数据不是你想要的。当不填入pos时,删除table末尾的数据。
看如下代码:
local array = {"a","a","a","b","a","a","b"}for i,v in ipairs(array) do if v == "a" then table.remove(array, i) endendfor i,v in ipairs(array) do print(i,v)end
输出结果:
上面我们想要删除table表中所有“a”数据,但是输出结果并没有将所有“a”数据删除。所以我们想连续删除表中数据不能这样使用,下面是正确删除方法。
local array = {"a","a","a","b","a","a","b"}for i=#array,1,-1 do if array[i] == "a" then table.remove(array, i) endendfor i,v in ipairs(array) do print(i,v)end
这样就能得到正确的删除结果了。
所以我们可以封装一个函数
-- 删除table表中符合conditionFunc的数据-- @param tb 要删除数据的table-- @param conditionFunc 符合要删除的数据的条件函数local function table.removeTableData(tb, conditionFunc) -- body if tb ~= nil and next(tb) ~= nil then -- todo for i = #tb, 1, -1 do if conditionFunc(tb[i]) then -- todo table.remove(tb, i) end end endend-- 删除数据是否符合条件-- @param data 要删除的数据-- @return 返回是否符合删除data条件local function removeCondition(data) -- body -- TODO data 符合删除的条件 return trueend
我们只需要将TODO写完,并且将table传入即可。
阅读全文
0 0
- lua -- 使用remove删除table数据
- lua函数table.remove的使用
- 在lua中如何remove掉table里面的数据
- lua table 元素删除
- 使用TRUNCATE TABLE语句删除表数据
- Lua table.remove 的一个问题记录
- Lua 中 table 库函数 insert、remove、sort
- lua table.remove的小细节
- Lua中table的删除
- list remove-----删除数据
- lua table 基本使用
- lua使用table问题
- lua使用table例子
- lua table的使用
- lua table 使用记录
- lua table简单使用
- lua中table存储数据
- lua倒序删除数据
- 自定义view,点击更换背景色与随机数
- 面试题-求一个数的平方根
- Java| 时间日期处理(SimpleDateFormat,Calendar,Date)
- JavaScript基础之Nunjucks
- Java抽象类 详解。----更新
- lua -- 使用remove删除table数据
- java 判断登录?未登录跳去登录页,过滤器使用
- 广东省副省长袁宝成一行领导莅临机智云考察调研
- BZOJ2725 故乡的梦 [神题][Dinic][Dijsktra][BFS][Heap][Tarjan]
- sublime3
- Python Socket学习记录
- xilinx accumulator j加减法符号代表
- PHP7 MongDB 安装与使用
- iTunes恢复备份时“恢复备份”按钮为灰色