lua的table表去重

2022-03-19 05:26:04 字數 1459 閱讀 4709

推薦閱讀:

方法一用過lua的人都知道,lua的table中不允許存在相同的key,利用這個思想,我們可以將原始table(記作table1),用乙個新的table(記作table2)來存放,存放得時候將table1的value作為table2得key,將值賦為true,最後只需要遍歷table2,將其的key儲存在乙個新的table(記作table3)裡。

例如:原始table1=

local table1=

local table2={}

for key,val in pairs(table1) do

table2[val]=true

end

local table3={}

for key,val in pairs(table2) do

table.insert(table3,key)--將key插入到新的table,構成最終的結果

end

方法二
local list=

local temp1 = clone(list)

local temp2 = clone(list)

for k1, v1 in ipairs(temp1) do

for k2, v2 in ipairs(temp2) do

if v1 == v2then

table.remove(temp1, k1)

table.remove(temp2, k1)

endend

end

拓展:移除table中資料裡具有某個相同欄位的資料,例如,table如下:需移除具有相同value相同的資料
local list={}

list[1]=

list[2]=

list[3]=

list[4]=

利用方法二拓展本功能:

local list={}

list[1]=

list[2]=

list[3]=

list[4]=

local temp1 = clone(list)

local temp2 = clone(list)

for k1, v1 in ipairs(temp1) do

for k2, v2 in ipairs(temp2) do

--同種英雄同一星級的移除

if v1.id ~= v2.id and v1.value == v2.value and v1.sid == v2.sid then

table.remove(temp1, k1)

table.remove(temp2, k1)

endend

end

Lua語言之table表

table有兩種形式,陣列形式與鍵值對形式。一 table基本用法 1.table基本使用 初始化 table 表名 賦值 陣列形式 newtable 0 beijing 即同陣列一樣改變下標進行賦值 鍵值對形式 newtable2 xian shanxi 遍歷 陣列形式 for key,value...

Lua基礎學習 table表

table 是乙個 關聯陣列 在 lua 中可以用任意型別的值來作為陣列的索引,但是這個值不能是 nil,同樣也可以 用任意型別的值作為陣列的value,nil也可以。1 陣列的索引可以是數字或者是字串,所有索引值都需要用 和 括起來 如果是字串還可以去掉引號和中括號 但是數字下標不可以。注意 2 ...

Lua 列印table表內容

剛接觸lua時間不長,但是確實覺得lua的短小精悍,寫 的時候感覺非常的自由,最重要的是 不會稍不注意間就蹦出來個崩潰提示框。lua的table非常強大,如果說c語言說一切皆函式,c 說一切皆物件,那麼lua就是一切皆表,不準確也不接受反駁 哈哈 在進入標題內容之前,先來點前奏,大家也可以直接翻到最...