在嵌套情况下如何最好地找到特定值的键?
How best can I find the key of a specific value in a nested situation?
在Luatable中,如何才能最好的找到特定值的key
在嵌套情况下(在 table 之后,源自 JSON)?
[{"Code": "AF", "Name": "Afghanistan"},
{"Code": "AL", "Name": "Albania"},
...
]
比如我可以用table[2]["Name"]取"Albania",但是怎么取[2],只能指定"Albania"?
遍历数组并测试每个值:
for i,v in ipairs(table) do
if v.Name == "Albania" then
return v.Code
end
end
您也可以将值作为键对放入新的 table 一次,这样您就可以直接查询:
local codeFromName={}
for i,v in ipairs(table) do
codeFromName[v.Name]=v.Code
end
for i,v in ipairs(table) do
if string.match(v.Name, countryName) then
print(i)
end
end
使用 srting.match 而不是 v.Name == "Albania",因为我意识到在其他情况下可能存在国家/地区名称,但可能不完全相同.
在Luatable中,如何才能最好的找到特定值的key 在嵌套情况下(在 table 之后,源自 JSON)?
[{"Code": "AF", "Name": "Afghanistan"},
{"Code": "AL", "Name": "Albania"},
...
]
比如我可以用table[2]["Name"]取"Albania",但是怎么取[2],只能指定"Albania"?
遍历数组并测试每个值:
for i,v in ipairs(table) do
if v.Name == "Albania" then
return v.Code
end
end
您也可以将值作为键对放入新的 table 一次,这样您就可以直接查询:
local codeFromName={}
for i,v in ipairs(table) do
codeFromName[v.Name]=v.Code
end
for i,v in ipairs(table) do
if string.match(v.Name, countryName) then
print(i)
end
end
使用 srting.match 而不是 v.Name == "Albania",因为我意识到在其他情况下可能存在国家/地区名称,但可能不完全相同.