如何通过其键删除Lua表条目?
让我们考虑一个我们想要删除Lua表条目的示例。表本身的行为就像一个散列图,它有几个键值对,我们想根据键从该表中删除一个条目。
Lua库确实提供了一个函数,我们可以在我们的特定情况下使用它。该函数是,它接受两个参数,第一个参数是表的名称,第二个参数是我们要删除的键。table.remove()
示例
考虑下面显示的例子-
local mapone = { [1] = 10, [2] = 20, [3] = 30 } for _,v in pairs(mapone) do print(v) end table.remove(mapone,2) for _,v in pairs(mapone) do print(v) end
在上面的例子中,我们有一个名为mapone的表,它的行为类似于哈希图,具有不同的键值对,我们想通过提供一个key从中删除一个条目,我们在调用函数时就是这样做的。table.remove()
输出结果
10 20 30 10 30
需要注意的是,前三个数字是存在于映射中的键的值,后两个数字是移除键=2后保留在映射中的键的值。
还应该注意的是,该函数仅在我们有整数键的情况下才起作用。table.remove()
为了让它在非整数键上工作,我们必须创建我们自己的函数。
示例
考虑下面显示的例子-
local map = { foo = 1, bar = 2 , car = 3} function table.removekey(table, key) local element = table[key] table[key] = nil return element end for i,v in pairs(map) do print(i,v) end table.removekey(map,'bar') for i,v in pairs(map) do print(i,v) end输出结果
foo 1 bar 2 car 3 foo 1 car 3