Lua中如何获取表中最大最小值对应的键?
- 内容介绍
- 文章标签
- 相关推荐
本文共计370个文字,预计阅读时间需要2分钟。
在Lua中,查找指定表中最大或最小数字的索引,可以通过遍历表并比较每个元素的值来实现。以下是一个简单的示例代码,演示了如何使用`math.max`和`math.min`函数以及迭代来找到最大或最小值的索引:
lua-- 示例表local table={5, 3, 8, 2, 9, 1, 7}
-- 查找最大值的索引local maxIndex=1for i=2, #table do if table[i] > table[maxIndex] then maxIndex=i endendprint(最大值的索引是: .. maxIndex)
-- 查找最小值的索引local minIndex=1for i=2, #table do if table[i] 这里有一个简单的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)
在实际代码中,请记住先检查表是否为空.
本文共计370个文字,预计阅读时间需要2分钟。
在Lua中,查找指定表中最大或最小数字的索引,可以通过遍历表并比较每个元素的值来实现。以下是一个简单的示例代码,演示了如何使用`math.max`和`math.min`函数以及迭代来找到最大或最小值的索引:
lua-- 示例表local table={5, 3, 8, 2, 9, 1, 7}
-- 查找最大值的索引local maxIndex=1for i=2, #table do if table[i] > table[maxIndex] then maxIndex=i endendprint(最大值的索引是: .. maxIndex)
-- 查找最小值的索引local minIndex=1for i=2, #table do if table[i] 这里有一个简单的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)
在实际代码中,请记住先检查表是否为空.

