我一直在尝试找到一种方法从表格中删除字符串,如下所示:
myTable = {'string1', 'string2'}
table.remove(myTable, 'string1')
但我无论如何都找不到这样做。有人可以帮忙吗?
我一直在尝试找到一种方法从表格中删除字符串,如下所示:
myTable = {'string1', 'string2'}
table.remove(myTable, 'string1')
但我无论如何都找不到这样做。有人可以帮忙吗?
正如 hjpotter92 所说,table.remove
期望您要删除的位置而不是值,因此您必须进行搜索。下面的函数搜索 value 的位置并用于table.remove
确保 table 将保持有效序列。
function removeFirst(tbl, val)
for i, v in ipairs(tbl) do
if v == val then
return table.remove(tbl, i)
end
end
end
removeFirst(myTable, 'string1')
table.remove
接受元素的位置作为其第二个参数。如果您确定它string1
出现在第一个索引/位置;您可以使用:
table.remove(myTable, 1)
或者,您必须使用循环:
for k, v in pairs(myTable) do -- ipairs can also be used instead of pairs
if v == 'string1' then
myTable[k] = nil
break
end
end