You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Lua获取Table中存储的最小数值

问题原因

math.min 本身不接收table类型参数,只能接收多个独立的数值参数,你直接把table传进去肯定无法得到正确结果。

实现方法

方法1:快速实现(仅适用于数组型table)

如果你的table是从1开始连续整数索引的纯数字数组,可以用table.unpack把table拆解成多个独立参数传入math.min,代码示例:

local test_1 = {2, 7, -9, 0, 27, 36, 16}

function get_min(t)
    return math.min(table.unpack(t))
end

print(get_min(test_1)) -- 输出结果为 -9

方法2:通用实现(适用于所有table场景)

如果你的table存在非连续索引、自定义key或者可能包含非数字值,更稳妥的方式是遍历table逐个比较取值,逻辑非常容易理解:

  1. 先取table中第一个数字作为初始最小值
  2. 遍历table的每一个值,只要当前值比最小值小,就更新最小值
  3. 遍历完成后得到的就是整个table的最小数值

代码示例:

local test_1 = {2, 7, -9, 0, 27, 36, 16}

function get_min(t)
    local min_val = nil
    for _, v in pairs(t) do
        -- 只对比数字类型的值,避免非数字内容导致报错
        if type(v) == "number" then
            min_val = min_val == nil and v or math.min(min_val, v)
        end
    end
    return min_val
end

print(get_min(test_1)) -- 输出结果为 -9

内容的提问来源于stack exchange,提问作者user1857403

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:09:03