如何根據鍵刪除 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** 的表,它像雜湊表一樣,具有不同的鍵值對,我們想透過提供一個 **鍵** 來從中刪除一個條目,當我們呼叫 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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP