如何从表中删除字符串

时间:2015-09-27 05:40:55

标签: string lua lua-table computercraft

我一直试图找到一种从表格中删除字符串的方法:

myTable = {'string1', 'string2'}
table.remove(myTable, 'string1')

但我无论如何都无法找到它。有人可以帮忙吗?

2 个答案:

答案 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