[英]How do I split a hash into two arrays based on key and value in Ruby?
因此,我試圖將哈希表拆分為兩個數組,一個數組包含鍵,另一個數組包含值。
到目前為止,我有:
hash = { Matsumoto: "Ruby", Ritchie: "C", Backus: "Fortran", McCarthy: "Lisp" }
我可以像這樣通過鍵或值創建數組:
hash.map { |creator, proglang| creator }
但是我無法創建兩個數組,一個包含鍵,另一個包含值。 我已經嘗試了許多方法,但我很茫然。
謝謝。
keys, values = hash.keys, hash.values
> keys
# => [:Matsumoto, :Ritchie, :Backus, :McCarthy]
> values
# => ["Ruby", "C", "Fortran", "Lisp"]
您可以參考Hash類方法:
hash.keys
hash.values
分別返回鍵和值的數組
有關更多詳細信息,請參見http://www.ruby-doc.org/core-2.1.0/Hash.html
keys, values = hash.to_a.transpose
#=> [[:Matsumoto, :Ritchie, :Backus , :McCarthy],
# ["Ruby" , "C" , "Fortran", "Lisp" ]]
也可以使用,但是為此任務提供了keys()
和values()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.