lua 中为了批量删除 元素 我写了如下代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 中为了批量删除 元素 我写了如下代码相关的知识,希望对你有一定的参考价值。
m = 1,2,3,4,5,6 t = 3,4
我要把 t中的元素在m中删掉 我写了如下代码
function shanchu(d,f) --l为删除组 s为被删除组
local w = d
local v = f
if(table.getn(w) < table.getn(v))then
for n = 1,table.getn(w) do
for i = 1,table.getn(v) do
if(w[n] == v[i])then
table.remove(w,n)
table.remove(v,i)
break
end
end
end
if(table.getn(w) == 0)then
return v
else
shanchu(w,v)
end
end
end
处理之后为什么不能返回得到的table呢?
比如你的table m长度是6 那么你这个循环就会运行6次
在运行的过程中 如果你remove了一个值 那么你下次就必然会漏过一个
访问第一个
访问第二个 删除第二个
访问第三个
访问第四个
以上是你希望的
但实际运行的时候
访问第一个
访问第二个 删除第二个
访问第四个
访问超范围的第五个
-----------------
这是实际运行起来的效果
所以你要注意一下下标的访问
方法一,不用for 改用while
方法二,新建一个表 ,用于存放结果 参考技术A 不懂意思
sh [LUA] Redis批量/批量操作脚本(重命名,删除)
以上是关于lua 中为了批量删除 元素 我写了如下代码的主要内容,如果未能解决你的问题,请参考以下文章
sh [LUA] Redis批量/批量操作脚本(重命名,删除)
StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
Azure DevOps Server:使用Postman批量删除测试用例