Ruby程序计算该值在哈希中的所有值中出现的次数

  • 本文关键字:程序 哈希中 Ruby 计算 ruby hash
  • 更新时间 :
  • 英文 :


我正试图编写一个ruby程序来计算该值在哈希中所有值中出现的次数。为此,我正在创建一种方法-

count_value(hash,value(

def count_value(hash, value)
Hash[hash.group_by { |k, value| value }.map { |k, value| [k, value.count] }]
end
puts count_value(hash, 2)

但是,我没有得到实际的结果。我想要这种格式的结果:-

count_value(hash, 2) => 1
count_value(hash, 3) => 1
count_value(hash, 5) => 2
count_value(hash, 10) => 0

如何做到这一点?我在代码片段中犯了什么错误?

h = {a: 5, b:2, c: 3, d: 5}
value_to_be_counted = 5
p h.count{|k, v| v == value_to_be_counted  }  # => 2

尝试以下代码:

def get_hash_dup_count(hash_data)
arr_elem_count = Hash.new(0)
hash_values = hash_data.values
puts "Hash values are : #{hash_values}"
hash_values.each do |v|
arr_elem_count[v] += 1
end
return arr_elem_count
end
def count_value(hash_data, value)
arr_val_count = get_hash_dup_count(hash_data)
puts arr_val_count[value]
end
hash_data = {
"x" => 1,
"y" => 2,
"z" => 1,
"k" => 0
}
count_value(hash_data, 2)

最新更新