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循环更好的方法?
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)