在Lua中,table移除元素出现的问题:
说明:一般我们不在循环中删除,在循环中删除会造成一些错误。
方法1 从后往前删除
for i = #test, 1, -1 do
if remove[test[i]] then
table.remove(test, i)
end
end
为什么不从前往后,因为table.remove操作后,后面的元素会往前移位,这时候后续的删除索引对应的元素已经不是之前的索引对应的元素了。
方法2 while删除
local i = 1
while i <= #test do
if remove[test[i]] then
table.remove(test, i)
else
i = i + 1
end
end