![](/img/trans.png)
[英]How to remove a key from Hash and get the remaining hash in Ruby/Rails?
[英]Ruby - how to replace key in a hash by a key from different one?
我有這個哈希:
CARS = {"Audi" => 0,
"BMW" => 1,
...}
這個來自 ActiveRecord ( @top_cars
) 的輸出:
{1=>18, 0=>17, 3=>13, 5=>10, 2=>5, 4=>1}
如何用來自CARS
的汽車名稱替換來自@top_cars
的鑰匙?
謝謝
編輯:所以所需的輸出應該是{"BMW"=>18, "Audi"=>17, "Renault"=>13, "Mercedes"=>10, "Ford"=>5, "Porsche"=>1}
這可以解決問題:
@top_cars.map {|key, value| [CARS.key(key), value]}.to_h
可能的解決方案:
@top_cars.inject({}) {|memo, (key,value)| memo.merge(CARS.key(key) => value)}
您可以將cars
與自身合並:
cars = { "Audi" => 0,
"Mercedes" => 1,
"Ford" => 2,
"Renault" => 3,
"BMW" => 4,
"Porsche" => 5
}
top_cars = {1=>18, 0=>17, 3=>13, 5=>10, 2=>5, 4=>1}
cars.merge(cars) { |*,n| top_cars[n] }
#=> {"Audi"=>17, "Mercedes"=>18, "Ford"=>5, "Renault"=>13, "BMW"=>1, "Porsche"=>10}
這使用Hash#merge的形式,其中使用一個塊來確定存在於被合並的兩個散列中的鍵的值,這里是所有鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.