当前位置 : 主页 > 网络编程 > lua >

lua – 返回表中最大或最小数字的键

来源:互联网 收集:自由互联 发布时间:2021-06-23
这里有一个简单的Lua问题:如何查找给定表中最小或最大数字的索引或键. math.max / math.min只给出实际的最大值或最小值,而不是键. 迭代表,并将值与存储的最大/最小值进行比较.以max为例
这里有一个简单的Lua问题:如何查找给定表中最小或最大数字的索引或键.

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)

在实际代码中,请记住先检查表是否为空.

网友评论