簡體   English   中英

如何根據Ruby中的鍵和值將哈希值分成兩個數組?

[英]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.

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