美文网首页
ruby 基础 Array 与 Hash 相互转换

ruby 基础 Array 与 Hash 相互转换

作者: ibob2012 | 来源:发表于2019-08-19 15:23 被阅读0次

    将一维数组转化为哈希 

    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

    相关文章

      网友评论

          本文标题:ruby 基础 Array 与 Hash 相互转换

          本文链接:https://www.haomeiwen.com/subject/xwassctx.html