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

Lua 如果表包含具有特定值的键,lua,lua-table,Lua,Lua Table,这可能有点混乱,但我有一个表,例如,名为Ant 此表包含一组其他(未命名)表。这些表表示蚂蚁,并保存值 有点像这样: Ant = { {age=3,speed=10}, {age=6,speed=7} } 我的问题是,如何检查Ant表中的任何未命名表是否包含到age的特定值 例如,我想检查我的蚂蚁是否有3岁的 我希望我说得够清楚了,提前谢谢你 您可以在表格中循环并检查: for i, v in ipairs(Ant) do if v.age == 3 then print(

这可能有点混乱,但我有一个表,例如,名为
Ant

此表包含一组其他(未命名)表。这些表表示蚂蚁,并保存值

有点像这样:

Ant = {
  {age=3,speed=10},
  {age=6,speed=7}
}
我的问题是,如何检查Ant表中的任何未命名表是否包含到
age
的特定值

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


我希望我说得够清楚了,提前谢谢你

您可以在表格中循环并检查:

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

它将是存储3岁的蚂蚁的位置。

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

好吧,如果我有一个母亲值,它需要更改怎么办。所以我遍历了所有的蚂蚁,但我只想换一只。@doorknold你能举个例子吗?说明情况?@DoorKnob
break
打印
谢谢,用户说得对。但是,为了澄清,我们假设我的蚂蚁都不是母亲。我想要一个妈妈。我不想全部更改,只想更改一个。@DoorKnob或(应用SPOT规则)将
Ant.mother
设置为一个蚂蚁:
Ant.mother=Ant[I]
。(
Ant
可能应该是
Ant
,以表示数组而不是单个实例)