gpt4 book ai didi

lua - table.insert/remove按值

转载 作者:行者123 更新时间:2023-12-04 23:57:06 25 4
gpt4 key购买 nike

我有两个表,例如:

table1 = { element1, element2, element3, element4 }
table2 = { element1, element3 }


表2引用了table1的某些元素,但是我不知道确切地是哪个元素,也不知道它们的索引。
现在,对于特定元素,我想检查table2是否包含它,并在情况下将其插入/删除。

我想到的第一件事是:

table.remove/insert(table2, table1.elementX)


但是由于插入/删除按索引进行查找,因此无法正常工作。
当然,我可以遍历整个表,直到分别找到并删除元素为止,直到没有匹配的迭代完成并插入为止。

但是,有没有更有效的方法可以做到这一点?

我不想用空字段填充table2来将元素放在匹配索引上。

最佳答案

首先还原table2

table2reverse = {}
for k,v in pairs(table2) do table2reverse[v]=k end


然后执行以下操作:

for k,v in pairs(table1)do
if table2reverse[v] then
table1[k]=nil
end


最后压缩 table1

关于lua - table.insert/remove按值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26097743/

25 4 0