在Lua中根据键移除表索引

我有这段代码

if not _elementdata[to] then
    _elementdata[to] = {}
end
if not _elementdata[to][key] then
    _elementdata[to][key] = {}
end
_elementdata[to][key] = { value = value, sync = sync or false }

但是,当我从表格中删除它时出现了问题..我使用

if _elementdata[source] then
    _elementdata[source] = nil
end

我第一次进入游戏时没有错误,第二次进入游戏时出现了以下错误:

table index is nil

如果我继续重新连接,错误将随重新连接的次数而增加..所以我想它根本没有被删除..顺便说一下,这里是获取数据并将其发送到客户端的代码:

for to, _ in pairs(_elementdata) do
    for key, _ in pairs(_elementdata[to]) do
        if to == root or _elementdata[to][key].sync then
            triggerClientEvent(source, "onClientElementSync", source, to, key, _elementdata[to][key].value)
        end
    end
end
点赞