这里的重点是要求该数组删除数据后依然保持key的连续性且始终是从1开始的
这样也可以保证 ipairs()的正确性 等等
-- 第一种删除数据方法
这种方法无疑是最好的,先用一个临时表记录要删除的所有key,然后再延迟统一删除.
local a = {11,12,13,13,15,13,13,17,18}
local b = {}
for k,v in pairs(a) do
if v == 13 then
table.insert(b, k)
end
end
table.sort(b,function( d,e)
return d>e
end)
for k,v in pairs(b) do
table.remove(a, v)
end
b = nil
print(unpack(a))
这里的重点是该数组key可以随意指定且可不具备连续性的要求的前提下
-- 第二种删除数据方法
local c = {a=11, b=12, c=13, d=13, e=15, f=13,g=13, h=17, j=18}
for k,v in pairs(c) do
if v == 13 then
c[k] = nil
end
end