I've been trying to find a way to remove a string from a table kind of like this:
myTable = {'string1', 'string2'}
table.remove(myTable, 'string1')
but I haven't been able to find anyway to do it. Can someone help?
As hjpotter92 said, table.remove
expects the position you want removed and not the value so you will have to search. The function below searches for the position of value and uses table.remove
to ensure that the table will remain a valid sequence.
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
accepts the position of an element as its second argument. If you're sure that string1
appears at the first index/position; you can use:
table.remove(myTable, 1)
alternatively, you have to use a loop:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With