如果表包含具有特定值的键

时间:2014-02-24 12:12:48

标签: lua lua-table

这可能有点令人困惑,但我有一张表,例如,名为Ant

此表包含许多其他(未命名)表。这些表代表蚂蚁,并保持值。

有点像这样:

Ant = {
  {age=3,speed=10},
  {age=6,speed=7}
}

我的问题是,我如何检查Ant表中的任何未命名表是否包含age的特定值。

所以,例如,我想检查一下我的蚂蚁是否已经3岁了。

我希望我很清楚,并提前感谢!

2 个答案:

答案 0 :(得分:4)

您可以循环查看表格并检查:

for i, v in ipairs(Ant) do
  if v.age == 3 then
    print( i )
  end
end

存储3岁蚂蚁print the index

答案 1 :(得分:2)

如果只需要检查每个子表中age的值,那么构建自定义迭代器是另一种方式:

function age_iter(t)
    local i = 0
    return function() 
               i = i + 1 
               return t[i] and t[i].age 
           end
end

迭代所有age值将是:

for age in age_iter(Ant) do
  print(age)
end

很容易对其进行修改,以检查其中一个age值是否等于3