查找哈希数组的键

Pal*_*ary 0 ruby arrays key

我有一个哈希数组,在数组中有不同的键:

csv = [{:fruit=>"apple", :number=>23},{:age=>12,:name=>"XYZ"}]
Run Code Online (Sandbox Code Playgroud)

我如何得到这样的所有键:

[:fruit,:number,:age,:name]
Run Code Online (Sandbox Code Playgroud)

我试过了

array = csv.collect {|key,value| key }
Run Code Online (Sandbox Code Playgroud)

Uri*_*ssi 5

尝试使用flat_mapkeys:

csv.flat_map { |a| a.keys }
# => [:fruit, :number, :age, :name]
Run Code Online (Sandbox Code Playgroud)

如果某些键有多个实例,并且您希望每个键只有一次,那么您还应该添加uniq:

csv = [{:fruit=>"apple", :number=>23},{:age=>12,:name=>"XYZ", :number=>11}]
array = csv.flat_map { |a| a.keys }
# => [:fruit, :number, :age, :name, :number]
array.uniq
# => [:fruit, :number, :age, :name]
Run Code Online (Sandbox Code Playgroud)

  • 也许更好`csv.flat_map(&:keys).uniq` (2认同)