如何在Lua中获取字典中值最大的键?
Lua中获取表中值最大的键的解决方案
首先注意:你给出的表语法不符合Lua规范,Lua里键值对需要用=而非:,修正后的表应该是这样:
myValues = { key1 = 123, key2 = 43, key3 = 367, key4 = 2 }
下面是实现需求的函数:
function getMaxKey(tbl) local maxValue = -math.huge local maxKey = nil -- 遍历表中的每一组键值对 for key, value in pairs(tbl) do -- 如果当前值大于记录的最大值,更新最大值和对应键 if value > maxValue then maxValue = value maxKey = key end end return maxKey end
调用示例:
print(getMaxKey(myValues)) -- 输出:key3
补充说明
- 函数初始化
maxValue为-math.huge(负无穷),确保表中任何数值都能比它大,避免表中全是负数的情况出错。 - 如果表中有多个键对应相同的最大值,这个函数会返回第一个遍历到的键,如果需要返回所有符合条件的键,可以修改函数返回一个包含所有最大键的数组。
内容的提问来源于stack exchange,提问作者Arturo
相关产品推荐
相关产品推荐

