我知道应该避免 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
有更好的方法吗?
为什么不获取所有有问题的值并查看它们是否唯一?
!array.map { |h| h[:value0] }.uniq!
(uniq!
返回 nil
当没有重复项时)
我是一名优秀的程序员,十分优秀!