2017-01-01 117 views
2
house = { 
     ["Street 22"] = { 
          {name = "George", age = 20}, 
          {name = "Pete", age = 25} 
         }, 
     ["Street 30"] = { 
          {name = "John", age = 32}, 
         } 
     } 

我想按照它們的確切順序打印房屋表的鍵/街道。如果我使用:Lua - 按插入順序打印表鍵

for i, v in pairs(house) do 
    print(i) 
end 

這將打印它們,但順序似乎有點隨機......我怎樣才能打印它們,以便他們插入?

+0

創建與街道名稱的數組,遍歷它ipairs,然後做一個查找。 – warspyking

回答

1

正如已經說過的答案,您將無法僅使用表的關聯映射部分來完成此操作。但是,如果您使用表格的數組索引部分維護廣告訂單,則可以這樣做。例如。

table.insert(house, "Street 22") 
local street = house[#house] 
house[street] = { {name = "George", age = 20}, 
        {name = "Pete", age = 25} } 

table.insert(house, "Street 30") 
street = house[#house] 
house[street] = { {name = "John", age = 32} } 

之後,您可以把它打印出來使用ipairs

for _, v in ipairs(house) do 
    print(v) 
end 
2

Lua表是一組鍵值對。沒有訂單。

manual說:

其中指數枚舉沒有規定,即使是數字索引的順序。