我被LUA中的列表困住了。我有一个包含重复项的列表,看起来像这样:
list = {“item1”,“item1”,item2“,”item3“,”item3“}等 此列表由以下代码填充:
logtable={}
if #(activity)>0 then
for i,log in pairs(activiteit) do
table.insert(logtable, log.createdby)
end
end
activity是我数据库中的链接实体。我可以通过我们的后端界面访问它。 log.createdby是一个数据库字段,也可以通过后端接口使用。我检查了log.createdby的结果类型,这是一个字符串。因此,输入列表是根据可用数据动态创建的。
我需要在此列表中找到唯一值并计算唯一值的出现次数。我找不到一个简单的方法。关于如何在Lua中这样做的任何提示或提示?
谢谢!
答案 0 :(得分:1)
将值设置为键并计算:
local activiteit = {
{createdby = "item1", field2="",},
{createdby = "item2", field2="",},
{createdby = "item2", field2="",},
{createdby = "item3", field2="",},
{createdby = "item3", field2="",},
}
local logtable = {}
for _,log in pairs(activiteit) do
local index = log.createdby
logtable[index] = (logtable[index] or 0) + 1
end
for k,v in pairs(logtable) do
print(k,v)
end
控制台:
item2 2
item3 2
item1 1