我有一个字符串数组,想要将其转换为哈希,其中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
}
arr = [:a, :b, :c, :d]
Hash[*arr]
#=> {:a=>:b, :c=>:d}
请参见Hash::[]。
Hash[*arr]
在这里与:
Hash[:a, :b, :c, :d]
您可以使用Enumerable#each_slice
将数组分为几对,然后将每对的第一项用作键,第二项用作值。
Enumerable#each_slice