将一维数组转化为哈希
array = ['A', 'a', 'B', 'b', 'C', 'c']
hash = Hash[*array]
# => {"A"=>"a", "B"=>"b", "C"=>"c"}
将二维数组转化为hash
array = [['A', 'a'], ['B', 'b'], ['C', 'c']]
hash = Hash[*array.flatten]
# => {"A"=>"a", "B"=>"b", "C"=>"c"}
也可以使用一下方法:
array = [['A', 'a'], ['B', 'b'], ['C', 'c']]
hash = array.inject({}) do |memo, values|
memo[values.first] = values.last
memo
end
# => {"A"=>"a", "B"=>"b", "C"=>"c"}
class Array
def map_to_hash
map { |e| yield e }.inject({}) { |carry, e| carry.merge! e }
end
end
使用:
[1, 2, 3].map_to_hash { |e| {e => User.find(e)} }
————————————————
版权声明:本文为CSDN博主「喵_喵」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011103598/article/details/84726002
网友评论