1

次のようなハッシュがあります。

drinks = {"soda" => 3, "water" => 2, "beer" => 6}

を使用して 3 倍にした各ペアの値を表示したいと思いeachます。

つまり、「ソーダ」の値を 9、「水」の値を 6 などにします。

4

4 に答える 4

9

Hash[hash.map { |k,v| [k, v * 3] }]

于 2012-07-06T21:53:44.280 に答える
5

必要なセマンティクスに応じて、これを行う方法はいくつかあります。1 つの方法は、 Hash#eachを使用して各キーと値のペアを操作することです。例えば:

drinks = {"soda"=>3, "water"=>2, "beer"=>6}
drinks.each { |key, value| drinks[key] = value.to_i * 3 }
=> {"soda"=>9, "water"=>6, "beer"=>18}
于 2012-07-06T21:59:09.397 に答える
3
drinks = Hash[­drink­s.map { |dri­nk, value­| [drin­k, value­ * 3] }]
于 2012-07-18T17:40:42.140 に答える
1
drinks.each_with_object({}) { |(k,v),h| h[k] = 3 * v }   
  => {"soda"=>9, "water"=>6, "beer"=>18} 
于 2014-01-30T06:37:35.177 に答える