首页 > 解决方案 > 将数组元素转换为哈希 ruby

问题描述

我有一个字符串数组,想把它转换成一个散列,其中 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
    }

标签: arraysrubyhash

解决方案


arr = [:a, :b, :c, :d]

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

请参阅Hash::[]

Hash[*arr]这里是一样的:

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

推荐阅读