首页 > 解决方案 > Ruby .map 哈希值到数组中的键值对

问题描述

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

为什么我无法获取数组中第一项的键值?

解决方案:keys.first。

标签: ruby-on-railsruby

解决方案


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

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

搜索是线性的,rb_hash_foreach用于迭代散列中的对。


推荐阅读