在嵌套情况下,如何最好地找到特定值的键?

时间:2018-08-06 11:01:51

标签: lua nested lua-table

在Lua表中,如何最好地找到特定值的键 在嵌套情况下(以下表格,源自JSON)?

[{"Code": "AF", "Name": "Afghanistan"},
{"Code": "AL", "Name": "Albania"},
...
]

例如,我可以使用table [2] [“ Name”]来获取“ Albania”,但是如何仅通过指定“ Albania”来获取[2]?

2 个答案:

答案 0 :(得分:2)

遍历数组并测试每个值:

for i,v in ipairs(table) do
    if v.Name == "Albania" then
        return v.Code
    end
end

您还可以将值作为键对放入一次新表中,以便直接查询:

local codeFromName={}
for i,v in ipairs(table) do
    codeFromName[v.Name]=v.Code
end

答案 1 :(得分:0)

734509.0313

使用srting.match代替v.Name ==“ Albania”,因为Ive意识到在其他情况下可能存在国名,但可能并不完全相同。