2016-02-22 59 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