How to remove a lua table entry by its key?
key, lua, lua-table
Solution
No, setting the key's value to `nil` is the accepted way of removing an item in the hashmap portion of a table. What you're doing is standard. However, I'd recommend not overriding `table.remove()` - for the array portion of a table, the default table.remove() functionality includes renumbering the indices, which your override would not do. If you do want to add your function to the `table` function set, then I'd probably name it something like `table.removekey()` or some such.
Problem
I have a lua table that I use as a hashmap, ie with string keys : ``` local map = { foo = 1, bar = 2 } ``` I would like to "pop" an element of this table identified by its key. There is a `table.remove()` method, but it only takes the index of the element to remove (ie a number) and not a generic key. I would like to be able to do `table.remove(map, 'foo')` and here is how I implemented it : ``` function table.removekey(table, key) local element = table[key] table[key] = nil return element end ``` Is there a better way to do that ?