我有此表local cookies = {{["name"]=23, ["value"]=333}, {["name"]=222, ["value"]=33233}}
,并且我想遍历子表以找到具有正确“名称”的表。这是我尝试过的
for _,elm in ipairs(cookies) do
for k,v in ipairs(elm) do
print(k)
if k == "name" and v == 222 then
print(v)
end
end
end
我确实在外部for循环中显示了它对表的可见性,但是,它甚至没有进入内部for循环-为什么?如何找到“名称”等于某个值的子表?
答案 0 :(得分:3)
ipairs
仅遍历键1、2、3,...,因此不会访问键"name"
。如果要访问所有键,请使用pairs
(尽管会警告迭代顺序不可预测)。
但是,对于您的示例,您根本不需要内部循环。您可以简单地将榆木的名称获取为elm.name
:
for _,elm in ipairs(cookies) do
if elm.name == "222" then
print(elm.name, elm.value)
end
end
实际上,如果您不需要排序或需要支持重复的cookie名称,那么您的cookies
表可以成为name => value的字典,从而使您无需编写循环即可:>
print(cookies["222"]) --> 33233