计算列表中的值

时间:2017-05-16 07:24:35

标签: lua lua-table

我被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中这样做的任何提示或提示?

谢谢!

1 个答案:

答案 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