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

时间:2016-02-22 12:35:03

标签: lua

我正在使用Lua脚本来解析此结构中的Lua文件中的数据。我很难拉出所有的" group ="价值因为它的嵌套方式。我尝试了以下打印命令的许多变体,以便能够获得一个值,但似乎无法找到正确的语法。我需要能够循环遍历所有group =" items"并打印出来。

打印(itemGroups.groups [1] [2])

打印(itemGroups.groups.group [1])

itemGroups = {
        {
        groups = {
            {group = "item1", chance = 10},
            {group = "item2", chance = 20},
            {group = "item3", chance = 30},
        },
        itemChance = 50
        }
}

1 个答案:

答案 0 :(得分:2)

你可能想用这个:

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
-- If you want to use it all in one line:
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