在Ruby中,如何根据键和值将哈希拆分为两个数组?
所以我试图将一个散列分成两个数组,一个带键,一个带值 到目前为止,我已经:在Ruby中,如何根据键和值将哈希拆分为两个数组?,ruby,arrays,hash,Ruby,Arrays,Hash,所以我试图将一个散列分成两个数组,一个带键,一个带值 到目前为止,我已经: hash = { Matsumoto: "Ruby", Ritchie: "C", Backus: "Fortran", McCarthy: "Lisp" } 我可以用键或值组成一个数组,如下所示: hash.map { |creator, proglang| creator } 但是我无法创建两个数组,一个包含键,一个包含值。我已经尝试了很多方法,但现在我不知所措 谢谢。您可以参考哈希类方法: keys, valu
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.keys
hash.values
分别返回键和值的数组
看
有关详细信息,请参考哈希类方法:
hash.keys
hash.values
keys, values = hash.to_a.transpose
#=> [[:Matsumoto, :Ritchie, :Backus , :McCarthy],
# ["Ruby" , "C" , "Fortran", "Lisp" ]]
分别返回键和值的数组
看
欲知详情
keys, values = hash.to_a.transpose
#=> [[:Matsumoto, :Ritchie, :Backus , :McCarthy],
# ["Ruby" , "C" , "Fortran", "Lisp" ]]
也可以工作,但是为这个任务提供了keys()
和values()
同样有效,但是为这项任务提供了
keys()
和values()
。谢谢。正如我在Ruby中经常发现的那样,答案比我想做的要简单得多非常感谢。正如我在Ruby中经常发现的那样,答案比我想做的要简单得多是的,我也在读转置法。Ruby中有很多有用/有趣的内置方法。是的,我也在读转置方法。Ruby中有很多有用/有趣的内置方法。