将数组元素转换为哈希红宝石

问题描述 投票:1回答:2

我有一个字符串数组,想要将其转换为哈希,其中array[0]是键,array[1]是值,然后array[2]是下一组键。

我已经尝试过以各种组合方式来使用#each#map#each_with_object#to_h,而我能得到的最接近的结果是将每个数组元素设置为具有nil值的键。

# animal_data1 ={}
# animal_data1 = Hash[collected.map {|key,value| [key.to_sym, value]}]
# puts animal_data1 

=> {
    :"Kingdom:Five groups that classify all living things"=>nil,
    :Animalia=>nil,
    :"Phylum:A group of animals within the animal kingdom"=>nil,
    :Chordata=>nil,
    :"Class:A group of animals within a pylum"=>nil,
    :Mammalia=>nil,
    :"Order:A group of animals within a class"=>nil,
    :Tubulidentata=>nil,
    :"Family:A group of animals within an order"=>nil
    }
arrays ruby hash
2个回答
2
投票
arr = [:a, :b, :c, :d]

Hash[*arr]
  #=> {:a=>:b, :c=>:d}

请参见Hash::[]

Hash[*arr]在这里与:

Hash[:a, :b, :c, :d]

1
投票

您可以使用Enumerable#each_slice将数组分为几对,然后将每对的第一项用作键,第二项用作值。

Enumerable#each_slice
© www.soinside.com 2019 - 2024. All rights reserved.