我一直试图找到一种从表格中删除字符串的方法:
myTable = {'string1', 'string2'}
table.remove(myTable, 'string1')
但我无论如何都无法找到它。有人可以帮忙吗?
答案 0 :(得分:4)
正如hjpotter92所说,table.remove
期望你想要删除的位置而不是值,所以你必须搜索。下面的函数搜索值的位置,并使用table.remove
确保表格保持有效序列。
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')
答案 1 :(得分:2)
table.remove
accepts元素的位置作为其第二个参数。如果您确定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