如何在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
相关产品推荐
相关产品推荐

