【发布时间】:2013-06-24 00:11:10
【问题描述】:
以下稍作修改的版本允许我从多维表(字典样式)中过滤出唯一字段值。
[网址]http://rosettacode.org/wiki/Remove_duplicate_elements#Lua
items = {1,2,3,4,1,2,3,4,"bird","cat","dog","dog","bird"}`
flags = {}
io.write('Unique items are:')
for i=1,#items do
if not flags[items[i]] then
io.write(' ' .. items[i])
flags[items[i]] = true
end
end
io.write('\n')`
我迷失的是“如果不是……那么……结束”部分实际上是做什么的。对我来说这是愚蠢的说法,但是嘿,它有效;-) 现在我想知道引擎盖下发生了什么。
我希望多维不会冒犯任何人,我指的是由多行组成的表,每行包含多个键值对。
这是我正在使用的代码,没有出色的改编,但足以过滤字段名上的唯一值
for i=1,#table,1 do
if not table2[table[i].fieldname] then
table2[table[i].fieldname] = true
end
end
for k,v in pairs(table2) do
print(k)
end
【问题讨论】:
-
看来您已经通过编辑回答了自己的问题。请把它作为一个答案并接受它。
-
不要使用
table作为变量名。 -
@hjpotter92 我使用表格来说明代码,就像我使用字段名一样
-
使用
table作为变量名完全没问题。请记住,如果这样做,您将无法访问全局table.*函数。
标签: lua duplicates key-value lua-table