我怎麼會去這樣做如下:紅寶石 - 多if語句(如果@var定義)
- 記錄用戶的輸入,可以是任何評估數的「標籤」
- ,每個標籤如果@tag被定義,並且,如果它是,如果鍵和值相等
- 如果上述條件通過,然後添加到陣列
樣品(不正確的)代碼:
@array1.each do |element|
if (@tag1 && (@tag1 == @value1)) &&
if (@tag2 && (@tag2 == @value2)) &&
if (@tag3 && (@tag3 == @value3)) &&
if (@tag4 && (@tag4 == @value4))
@array2 << element
end
我要添加element
到一個數組,但只有當每個標籤被定義,並且僅當@tag == @value。例如:
如果@ TAG2被定義,並且@ TAG2 == @值2與 如果@ TAG3被定義,並且@ TAG3 == @值3
添加element
到陣列。
上面的代碼將添加element
兩次,我只希望它添加一次。
我該如何做到這一點?
由於
編輯:
標籤和值不是一個陣列的一部分。他們正在使用ruby aws-sdk。也許要說清楚,element
將是AWS實例的實例標識。實例上會有一系列標籤。我只想返回一個實例ID,如果它有一個標記(作爲ruby script.rb --tag1
傳入),並且僅當tag1 == value1(ruby script.rb --tag1 value1
)時才返回。不過,如果發現其他標籤,我希望發生這種情況。
的問題是,如果2個每日新聞在通過:
ruby script.rb --tag1 value1 --tag2 value2
然後 if (@tag1 && (@tag1 == @value1)) &&
是TRUE,並且 if (@tag2 && (@tag2 == @value2)) &&
是TRUE,元素添加兩次。我只希望它添加一次。
如果您還可以添加'@ array1','@ tag *'和'@ value *'的值,您想實現的內容將會更加清晰。 – Uzbekjon
瞭解,但值來自API調用,我不能在這裏演示。我希望有人能看到邏輯中的錯誤。我可以嘲笑一些示例值,但如果這有助於 – user6127511
標記和值都存儲在數組中?他們是數組的一部分? –