ruby - 比较数组中多个散列的值

标签 ruby arrays for-loop hash

我知道应该避免 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 当没有重复项时)

关于ruby - 比较数组中多个散列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868175/

相关文章:

ruby-on-rails - 为 Rails 4 禁用 ActiveRecord

arrays - 强制 TypeScript 数组包含给定值的元素

c++ - 在C++中初始化一个二维对象数组

Ruby 解析 JSON 而不打印结果

ruby - 什么解决方法可以应用于 ruby​​ 中的线程不安全自动加载?

ruby-on-rails - rails 链接到另一个 Controller

arrays - 如何确定 C 中数组的大小?

javascript - for 循环中嵌套 if 条件的 setTimeout

linux - 如何在 Shell 的循环中定义两个具有一对一关系的变量

loops - 如何在 Kotlin 循环内更改 for 循环的计数器变量值?