2011-09-13 56 views
0

在RUBY中給出以下代碼,我需要遍歷一堆散列。問題是,varX是一個字符串,我需要它是一個變量。有任何想法嗎?將字符串轉換爲for循環中的變量

element1_old = {:ip => "192.168.0.191", :state => "PA", :county => "ambler"} 
element1_new = {:ip => "192.168.0.191", :state => "PA", :county => "warrington"} 
element2_old = {:ip => "192.168.0.192", :state => "PA", :county => "ambler"} 
element2_new = {:ip => "192.168.0.192", :state => "PA", :county => "ambler"} 
element3_old = {:ip => "192.168.0.200", :state => "PA", :county => "warrington"} 
element3_new = {:ip => "192.168.0.200", :state => "PA", :county => "ambler"} 

for i in 1..3 
    var1 = "element#{i}_old" 
    var2 = "element#{i}_new" 
    p element"#{i}".not_in_both("element#{i}_old") 
end 
+3

使用更好的數據結構。 – FMc

+0

我不能,我不是創建數據源的人。 – luckytaxi

回答

0

扔哈希到另一個哈希:

h = { 
    'element1_old' => {:ip => "192.168.0.191", :state => "PA", :county => "ambler"}, 
    'element1_new' => {:ip => "192.168.0.191", :state => "PA", :county => "warrington"}, 
    'element2_old' => {:ip => "192.168.0.192", :state => "PA", :county => "ambler"}, 
    'element2_new' => {:ip => "192.168.0.192", :state => "PA", :county => "ambler"}, 
    'element3_old' => {:ip => "192.168.0.200", :state => "PA", :county => "warrington"}, 
    'element3_new' => {:ip => "192.168.0.200", :state => "PA", :county => "ambler"} 
} 

for i in 1..3 
    old = h["element#{i}_old"] 
    new = h["element#{i}_new"] 
    p new.not_in_both(old) 
end 

我假設element"#{i}"實際上應該是在你的僞紅寶石例如element"#{i}"_new和你有猴子修補not_in_both成散列。

+0

正確,'not_in_both'是我沒有粘貼到上面的代碼中的一種方法。我會嘗試你的代碼。 – luckytaxi