如何遍历Lua嵌套表,找出其中值最大的条目?
Lua遍历嵌套表找出数量最大的条目
首先补全完整的Lua表结构:
local fruits = { [1] = { ['name'] = 'Apple', ['qty'] = 3, }, [2] = { ['name'] = 'Orange', ['qty'] = 6, }, [3] = { ['name'] = 'Kiwi', ['qty'] = 2, }, [4] = { ['name'] = 'Banana', ['qty'] = 8, }, }
通过以下代码遍历表并找出qty值最大的条目名称:
-- 初始化最大值记录变量 local max_qty = -1 local max_name = "" -- 遍历表内所有水果条目 for _, item in ipairs(fruits) do -- 对比当前条目数量与记录的最大值 if item.qty > max_qty then -- 更新最大值及对应名称 max_qty = item.qty max_name = item.name end end -- 输出结果 print(max_name) -- 控制台将输出 "Banana"
关键说明:
- 用
ipairs遍历是因为该表是连续数字键的数组型表,能按顺序遍历所有条目 - 初始化
max_qty为-1,是为了兼容所有非负数量值,确保第一个条目能被正确选中 - 遍历过程中持续对比更新最大值和对应名称,最终得到的
max_name就是数量最多的水果名称
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

