Lua删除table中数据必须知道的小技巧

2015-08-21  本文已影响2898人  Lee坚武

这里的重点是要求该数组删除数据后依然保持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

上一篇 下一篇

猜你喜欢

热点阅读