如何从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