两种实现思路:
第一种,先排序,再比较相邻值,移除重复值
local testTable = {2,1,3,3,3,3,3,7,9,6,5}function test(list) table.sort(list) local index = 1 while list[index+1] do if list[index] == list[index+1] then table.remove(list,index+1) else index = index + 1 end end for k,v in pairs(list) do print(k,v) endend
test(testTable)
第二种,先去重,再排序。将需要去重的table的value值作为一个新table的key值,任意对该table赋值。因为在lua中,table的key值不允许重复。
local testTable = {2,1,3,3,3,3,3,7,9,6,5}local newArray = {}for k,v in pairs(testTable ) do newArray[v] = 0 -- 可以赋任意值endlocal result = {}for k,v in pairs(newArray) do table.insert(result,k)endtable.sort(result)for k,v in pairs(result) do print(k,v)end