arrays - 将数组元素转换为哈希 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
}
解决方案
arr = [:a, :b, :c, :d]
Hash[*arr]
#=> {:a=>:b, :c=>:d}
请参阅Hash::[]。
Hash[*arr]
这里是一样的:
Hash[:a, :b, :c, :d]
推荐阅读
- compare - 比较同一工作表上两个区域之间的两行中的所有单元格
- sql-server - tempdb 和数据库事务日志都已满
- reactjs - 无法在 ReactJS 状态内渲染数组
- android - Android studio C++ ndk 摄像头
- python-3.x - Pyomo 不能使用 gurobi 求解器
- node.js - 语义发布无法发布到 npm
- android - Tablayout 旁边的导航抽屉按钮
- javascript - 通过 JSON 数组进行索引
- android - BottomNavigationView 的等间距菜单项
- html - How can I horizontally center an svg grouped circle (two paths)?