[英]Ruby: Create hash with default keys + values of an array
我相信之前在一個稍微不同的背景下已經被問過/回答了,我已經看到了一些與此類似的例子的答案 - 但似乎沒有任何東西完全適合。
我有一系列的電子郵件地址:
@emails = ["test@test.com", "test2@test2.com"]
我想從這個數組中創建一個哈希,但它必須如下所示:
input_data = {:id => "#{id}", :session => "#{session}",
:newPropValues => [{:key => "OWNER_EMAILS", :value => "test@test.com"} ,
{:key => "OWNER_EMAILS", :value => "test2@test2.com"}]
我認為Hash
中的哈希Array
Hash
我失望。 但我已經玩過inject
, update
, merge
, collect
, map
並且沒有運氣生成這種類型的動態哈希,需要根據@emails
數組中的條目數創建。
有沒有人對如何解決這個問題有任何建議?
所以基本上你的問題是這樣的:
有這個數組:
emails = ["test@test.com", "test2@test2.com", ....]
你想要一個像這樣的哈希數組:
output = [{:key => "OWNER_EMAILS", :value => "test@test.com"},{:key => "OWNER_EMAILS", :value => "test2@test2.com"}, ...]
一個解決方案是:
emails.inject([]){|result,email| result << {:key => "OWNER_EMAILS", :value => email} }
更新:當然我們可以這樣做:
emails.map {|email| {:key => "OWNER_EMAILS", :value => email} }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.