无法从表中删除项目 (Lua)

我已经尝试解决这个问题超过一个小时了,但还没有解决。所以我能否问一个关于我当前正在工作的项目的问题,即我无法从表中删除一个项目,不知道为什么,但请帮我解决一下。

表格: 13411d36

代码:

participator = {"Zeroo#7497"}
for i, v in pairs(participator) do
    table.remove(participator, i)
end

输出:

运行时错误:org.luaj.vm2.LuaError: Zeroo#7497.lua:488: invalid key to 'next'

请问有谁能帮我解决这个问题以及该如何解决吗?

原文链接 https://stackoverflow.com/questions/69415278

点赞
stackoverflow用户11740758
stackoverflow用户11740758

如果 table.remove() 不删除最后一个键值对,它会进行移动操作。

(如果移除键 1,则键 2 将成为键 1,依此类推)

这对于成对的数据(next 函数)来说是个问题。

更好、更快、更安全的方法是倒计时,让 table.remove() 删除默认的最后一个键值对,而不进行移动操作。

例如:

participator = {"one", "two", "three"}

for i = #participator, 1, -1 do
    print('Deleting:', i, table.remove(participator))
    print('Size:', #participator)
end

这将产生以下输出...

Deleting:   3   three
Size:   2
Deleting:   2   two
Size:   1
Deleting:   1   one
Size:   0
2021-10-02 10:27:45