如果表格中包含特定值的键

可能有点困惑,但我有一个表格,例如,叫做 Ant

这个表格包含了许多其他(未命名)的表格。这些表格代表了蚂蚁,保存了值。

就像这样:

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

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

例如,我想检查我的蚂蚁中是否有 3 岁的蚂蚁。

我希望我表述得足够清楚,谢谢!

点赞
用户1190388
用户1190388

你可以遍历这个表并检查:

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

它会 打印出索引,这些索引存储了你的3岁蚂蚁

2014-02-24 12:16:50
用户1009479
用户1009479

如果你只需要检查每个子表中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

2014-02-24 12:30:18