统计列表中的值

我在 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 中如何完成?

谢谢!

点赞
用户7504558
用户7504558

将值设置为键并计数:

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
2017-05-16 07:41:22