2014-02-24 67 views
3

它可能有點混淆,但我有一個表,例如Ant如果表中包含具有特定值的密鑰

此表包含一堆其他(未命名)表。這些表格代表螞蟻,並擁有價值。

像這樣的:

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

我的問題是,我將如何檢查是否有螞蟻表內的未命名錶中包含特定值來age

因此,例如,我想檢查一下我的螞蟻是否年齡在3歲以上。

我希望我已經清楚了,並且提前致謝!

回答

4

您可以通過表圈和檢查:

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

它會print the index在其中你3歲的螞蟻存儲。

+0

好吧,如果我有一個母親的價值,並且需要改變它,該怎麼辦。所以我循環所有的螞蟻,但我只想改變其中的一個。 – hexagonest

+0

@DoorKnob你能舉個例子嗎?解釋情況? – hjpotter92

+2

@DoorKnob'print''print' – user3125367

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

相關問題