我知道for循環應該避免,我想更好的辦法,通過數組進行迭代的,而不是做比較來自多個哈希值
for i in 0..array.size-1 do
puts array[i]
end
做
array.each{ |x|
puts x
}
但如果我有一堆散列像
array = [{:value0 => 1, :value1 => 0}, {:value0 => 2, :value1 => 1}, {:value0 => 1, :value1 => 2}]
並希望檢查是否:value0在所有散列中唯一。直覺上我會做類似
for i in 0..array.size-1 do
_value_buffer = array[i][:value0]
for j in i+1..array.size-1 do
if _value_buffer == array[j][:value0]
puts "whatever"
end
end
end
有沒有更好的方法來做到這一點?
哦,而且,順便說一句,你*永遠不需要在Ruby中使用'for'。如果你真的需要索引,你可以使用['each_with_index'](http://ruby-doc.org/core-2.0/Enumerable.html#method-i-each_with_index)或['with_index'](http:// ruby-doc.org/core-2.0/Enumerator.html#method-i-with_index),或者可能是'(0 ..(array.size - 1))。times {| i | ''。 –
我會記住這一點,謝謝! – Zois