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
为什么我不能获得数组中第一项的键值?
解决方案:首先是钥匙。
答案 0 :(得分:2)
检查the docs,hash#key
时需要一个参数,该参数是您要为其找到相应键的值:
p a[0].key(2) # => :one
搜索是线性的,使用rb_hash_foreach
遍历哈希中的对。