例如:
items = {
    [753] = {
    },
    [192] = {
    },
    [789] = {
    },
    [791] = {
    },
    [790] = {
    },
    [776] = {
    },
}
我想删除789及其中的所有数据.我试过了两个:table.remove(items,2); 和table.remove(items,789); (我不确定索引是如何工作的)没有运气.
这很简单
items[789] = nil
在Lua中,如果表中的键具有nil值,那么就好像键不存在一样.
> t = { [5] = {}, [10] = {} }
> for k,v in pairs(t) do print(k,v) end
5       table: 0037CBC0
10      table: 0037CBE8
> t[5] = nil
> for k,v in pairs(t) do print(k,v) end
10      table: 0037CBE8
另见Lua的Progamming,第2.5节.(即使在线版本是为Lua 5.0编写的,这仍然适用于Lua 5.1)
...您可以将nil分配给表字段以将其删除.
分配nil给索引时,不会显式删除先前存储在索引中的内容; 但它确实降低了存储在那里的引用计数,可能使其符合垃圾收集的条件.