计算 Lua 表中某个值出现的次数

Sim*_*090 3 lua count lua-table

基本上我想做的是转换这种格式的表格

result={{id="abcd",dmg=1},{id="abcd",dmg=1},{id="abcd",dmg=1}}
Run Code Online (Sandbox Code Playgroud)

到这种格式的表:

result={{id="abcd",dmg=1, qty=3}}
Run Code Online (Sandbox Code Playgroud)

所以我需要知道{id="abcd",dmg=1}表中发生了多少次。有没有人知道比嵌套for循环更好的方法?

Ego*_*off 5

result={{id="abcd",dmg=1},{id="defg",dmg=2},{id="abcd",dmg=1},{id="abcd",dmg=1}}

local t, old_result = {}, result
result = {} 
for _, v in ipairs(old_result) do
  local h = v.id..'\0'..v.dmg
  v = t[h] or table.insert(result, v) or v
  t[h], v.qty = v, (v.qty or 0) + 1
end

-- result: {{id="abcd",dmg=1,qty=3},{id="defg",dmg=2,qty=1}}
Run Code Online (Sandbox Code Playgroud)