Lua table - 当较低的索引被删除时,较高的索引全部向下移动 1 位以填补该位置

Lua table - When a lower index is removed the higher index all moved down 1 place to fill the spot

使用Lua使用的是5.1

我正在尝试获取字典 table 并将其存储在 table 中,其中我有一个键索引,值是数据,例如:

tParams = {
    {1st table data...}  -- this one is key index 1
    {2nd table data...}  -- 2nd index
    ...
}

我正在使用此代码存储它:

tParams[index] = i     --i being a dictionary table

我可以在右边的索引中添加代码,调用时会输出table,一切正常

1   table: 0xa4a2fc0
2   table: 0x9f7c4c0

现在的问题是,如果我删除第一个索引数据,我不希望第二个索引数据移动到第一个位置,因为它是空的,它只是取代它并成为索引 1...我怎样才能避免这种情况?

或者如果您有其他一般解决方案,我想做的是存储字典 table 我正在获取的数据,如果被调用,则能够获取数据并使用它,如果我不再需要它们来删除它们。

根据创建实例的数量,可以有很多多个字典,所以我不能只预先制作它们。 它们基本上是动态的……每次它们都有一个特定的 ID,所以 2 个词典不会有相同的 ID。

如果删除了一个字典,其他字典不应移动并保持不变index/id以便它们可以被调用并成为正确的数据。

希望我说清楚了,也请不要建议任何补充模块。

谢谢!

您没有提供所有相关代码,但从 table 中删除项目的基本方法是 tParams[index] = nil。那应该不会导致您描述的问题。

听起来您好像在使用 table.remove。该函数用于维护正确的顺序,因此 # operator 和一些标准库函数对其有意义。