Lua 返回表中最大或最小数字的键
这里有一个简单的Lua问题:如何找到给定表中最小或最大数字的索引或键Lua 返回表中最大或最小数字的键,lua,lua-table,Lua,Lua Table,这里有一个简单的Lua问题:如何找到给定表中最小或最大数字的索引或键 math.max/math.min只给出实际的最大值或最小值,而不是键 function maxkey(initialtable) local maxval = math.max(unpack(initialtable)) local inv={} for k,v in pairs(initialtable) do inv[v]=k end return inv[maxval] end 见以下问题: 迭
math.max
/math.min
只给出实际的最大值或最小值,而不是键
function maxkey(initialtable)
local maxval = math.max(unpack(initialtable))
local inv={}
for k,v in pairs(initialtable) do
inv[v]=k
end
return inv[maxval]
end
见以下问题:
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)
在实数编码中,记得先检查表是否为空。为什么是
t[k]
,而不是简单的v
?