这里有一个简单的Lua问题:如何查找给定表中最小或最大数字的索引或键. math.max / math.min只给出实际的最大值或最小值,而不是键. 迭代表,并将值与存储的最大/最小值进行比较.以max为例
math.max / math.min只给出实际的最大值或最小值,而不是键.
迭代表,并将值与存储的最大/最小值进行比较.以max为例(假设表是一个序列,即类似于数组:local t = {1, 3, 7, 6, 4, 0} local key, max = 1, t[1] for k, v in ipairs(t) do if t[k] > max then key, max = k, v end end print(key, max)
输出:
3 7
如果表不是序列,那么会有一点改进:
local t = {four = 4, three = 3, seven = 7, six = 6, one = 1, zero = 0} local key = next(t) local max = t[key] for k, v in pairs(t) do if t[k] > max then key, max = k, v end end print(key, max)
在实际代码中,请记住先检查表是否为空.