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

如何在Lua的Table中获取子表对应的键(生物名称)

获取Lua表外层键(生物名称)的遍历方案

在Lua的pairs遍历中,返回值的顺序是**键(key)**在前,**值(value)**在后。你之前的循环变量顺序搞反了,只需要调整变量顺序,就能直接拿到作为外层键的生物名称,完全不需要在子表中添加冗余的name字段。

正确的遍历写法如下:

local creatureArray = {
    ["White Wyrm"]= {
        ["dungeon"]= "Cavernam",
        ["slayer"]= "Beastial",
        ["difficulty"]= 100.8,
        ["goldvalue"]= 1008,
        ["hits"]= 4500,
        ["mindmg"]= 45,
        ["maxdmg"]= 55,
        ["wrestling"]= 105,
        ["armor"]= 50,
        ["magicresist"]= 25,
        ["ai"]= "Melee",
        ["speed"]= "Medium",
        ["uniquescaler"]= 1.35
    },
    -- 可添加更多生物数据示例
    ["Grizzly Bear"]= {
        ["dungeon"]= "Woodland",
        ["slayer"]= "Animal",
        ["difficulty"]= 20.5
        -- 其他属性...
    }
}

-- 正确遍历:第一个变量为外层键(生物名称),第二个为对应子表数据
for creatureName, creatureData in pairs(creatureArray) do
    print("生物名称:" .. creatureName)
    print("所在地下城:" .. creatureData.dungeon)
    print("难度值:" .. creatureData.difficulty)
    -- 根据需求调用其他属性
end

这段代码里,creatureName会直接获取到外层Table的键(比如"White Wyrm"),creatureData则指向对应的子表对象,既满足了获取生物名称的需求,又避免了数据冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:42:16