簡體   English   中英

Ruby:從哈希中提取鍵和值

[英]Ruby : Extract Key and Value from hash

我有很多哈希值,在提取keyvalue遇到了麻煩。 該數組如下所示:

data = [{"key"=>"Name", "value"=>"Jason"}, {"key"=>"Age", "value"=>"21"},
        {"key"=>"last_name", "value"=>"bourne"}]

如何將其轉換為以下哈希數組?

[{"Name"=>"Jason"}, {"Age"=>"21"}, {"last_name"=>"bourne"}]

我能夠使用detect

a = d.detect { |x| x["key"] == "Name" }
puts a['value'] 

獲取"name"的值,但想知道是否有更好的方法。

我想說,解決此問題的最優雅的方法可能是先將data轉換為哈希(假設永遠不會有重復的鍵),如下所示:

data = data.map { |x| [x['key'], x['value']] }.to_h
# => {"Name"=>"Jason", "Age"=>"21", "last_name"=>"bourne"}

#to_h方法期望數組的每個元素都是[key, value]形式的數組,因此#map調用處理data每個元素以將其轉換為該形式。

完成此操作后,您可以像訪問其他哈希一樣簡單地訪問密鑰:

data['Name'] # => "Jason"
data['Age'] # => "21"

如果更改了哈希,則計算不應依賴於哈希的鍵。

data.map { |h| [h.values].to_h }
  #=> [{"Name"=>"Jason"}, {"Age"=>"21"}, {"last_name"=>"bourne"}] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM