如何使用 LUA 脚本迭代嵌套的 Lua 表

我正在使用 Lua 脚本解析一个特定结构的 Lua 文件中的数据。由于嵌套的方式,我无法获取所有的“group =”值。我尝试了以下打印命令的许多变体,甚至无法找到正确的语法。我需要能够循环遍历所有“group =“项并将其打印出来。

print(itemGroups.groups[1][2])

print(itemGroups.groups.group[1])

itemGroups = {
        {
        groups = {
            {group = "item1", chance = 10},
            {group = "item2", chance = 20},
            {group = "item3", chance = 30},
        },
        itemChance = 50
        }
}
点赞
用户5352026
用户5352026

你可能想要使用以下代码:

local firstGroup = itemGroups[1]
local itemChance = firstGroup.itemChance -- 50
local group = firstGroup.groups[1] -- first group
local name = group.group -- "item1"
local chance = group.chance -- 10
-- 如果你想在一行中使用它们:
name = itemGroups.groups[1].group -- "item1"
chance = itemGroups.groups[1].chance-- 10

当你在 Lua 中使用{key=value}作为表格时,你可以通过table.key来获取值。如果你使用数组,例如{value1,value2},则可以使用table[1]获取第一个值,使用table[2]获取第二个值。

如果你想循环遍历所有组并打印它们的名称和概率:

for index,itemgroup in pairs(itemGroups) do
    print("Groups in itemgroup #"..index..":")
    for k,v in pairs(itemgroup.groups) do
        print("\t"..v.group..": "..v.chance)
    end
end

输出:

Groups in itemgroup #1:
    item1: 10
    item2: 20
    item3: 30
2016-02-22 13:09:21