首页 > 解决方案 > 在嵌套情况下如何最好地找到特定值的键?

问题描述

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

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

例如,我可以使用 table[2]["Name"] 来获取“Albania”,但我怎样才能获得 [2],仅通过指定“Albania”?

标签: luanestedlua-table

解决方案


循环遍历数组并测试每个值:

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

推荐阅读