如何从Lua表中移除某项数据时避免丢失相关联的值?
摘要:在 k,v pairs(x)中Remove一个数据 置空一个数据 使用for i,#x do置空一个数据 使用for i,#x do移除一个数据
在 k,v pairs(x)中Remove一个数据
table.insert(x,"aaa")
table.insert(x,"bbb")
table.insert(x,"ccc")
for i,v in pairs(x) do
if i == 2 then
--x[i] = nil
table.remove(x,2)
end
print(x[i])
end
结果aaa ccc
置空一个数据
table.insert(x,"aaa")
table.insert(x,"bbb")
table.insert(x,"ccc")
for i,v in pairs(x) do
if i == 2 then
x[i] = nil
end
print(x[i])
end
结果 aaa nil ccc
使用for i,#x do置空一个数据
local x = {}
table.insert(x,"aaa")
table.insert(x,"bbb")
table.insert(x,"ccc")
for i = 1 ,#x do
if i == 2 then
x[i] = nil
end
print(x[i])
end
结果 aaa nil ccc
使用for i,#x do移除一个数据
local x = {}
table.insert(x,"aaa")
table.insert(x,"bbb")
table.insert(x,"ccc")
for i = 1 ,#x do
if i == 2 then
table.remove(x,2)
end
print(x[i])
end
结果 aaa ccc nil
