我仍在学习lua,pairs功能很棒,但我显然不知道如何正确使用它:
我试图根据嵌套表中的第一个值而不是键来计算一个值的总数。
我有一张桌子:
arr = {}
arr[100] = {1, "alpha", 4}
arr[10740] = {1, "bravo", 6}
arr[26104] = {2, "charlie", 7}
arr[150] = {3, "delta", 1}
arr[1006] = {2, "echo", 0}
arr[91002] = {1, "foxtrot", 2}
现在我可以使用对函数来计算表中v [3]的总数:
count = 0
for k, v in pairs(arr) do
count = count + v[3]
end;
print count
我需要做的是计算由v [1]分组的v [3]的总数。在表v [1]中,其固定数字为1-16,但数量可以不同。
但需要类似以下内容的结果:
我可以通过创建单独的表,取出第1组中的所有值,然后使用上述方法来实现这一目标-但我觉得是否必须有更好的方法。
非常感谢。
您的方法正确,您需要额外的表格来存储每个组的数量:
local group_count = {}
for k, v in pairs(arr) do
group_count[v[1]] = (group_count[v[1]] or 0) + v[3]
end
-- not sorted output
for k, v in pairs(group_count) do
print('Group '..k..' = '..v)
end