2016-02-22 95 views
0

我正在使用Lua脚本来解析来自此结构中的Lua文件的数据。由于嵌套的方式,我无法全部拉取“group =”值。我已经尝试了以下打印命令的许多变体,以便能够仅获取一个值,但似乎无法找到正确的语法。我需要能够遍历所有group =“items”并将其打印出来。如何使用LUA脚本遍历嵌套的Lua表

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

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

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

如果答案帮助你解决问题,请使用对号按钮,它接受!它可以帮助未来的读者解决类似的问题! – warspyking

回答

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 
+0

工作完美!感谢您的及时回复。对不起,花了我很长时间才回到测试。 – ScottEH