将结构添加到哈希红宝石

时间:2013-12-23 15:24:13

标签: ruby merge hashmap

我有以下方式的哈希:

hash = {
    :k1 => number1,
    :k2 => number2
}

我需要一种简单的方法将其转换为:

hash = {
    :k1 => {:count => number1},
    :k2 => {:count => number2}
}

所以我可以将它与其他属性合并。

2 个答案:

答案 0 :(得分:6)

尝试类似:

hash.each {|k, v| hash[k] = {:count => v}}

或者,使用速记哈希语法:

hash.each {|k, v| hash[k] = {count: v}}

答案 1 :(得分:0)

可悲的是,Hash#map将哈希转换为数组,而非哈希(因为map已包含Enumerable方法)。您最简单的选择可能是:

hash.each { |k,v| hash[k] = {:count => v} }