Ruby .map哈希值到数组中的键值对

时间:2019-06-14 00:05:24

标签: ruby-on-rails ruby

a = {one: 2, two: 3}.map{|k,v| {k => v}}  # => [{:one=>2}, {:two=>3}]

a[0]        # => {:one=>2}
a[0].class  # => Hash
a[0].key    # ~> ArgumentError: wrong number of arguments (given 0, expected 1)

预期输出:

[{one: 2}, {two: 3}]

这将导致a [0] .key >>:one

为什么我不能获得数组中第一项的键值?

解决方案:首先是钥匙。

1 个答案:

答案 0 :(得分:2)

检查the docshash#key时需要一个参数,该参数是您要为其找到相应键的值:

p a[0].key(2) # => :one

搜索是线性的,使用rb_hash_foreach遍历哈希中的对。