Cleanest way to create a Hash from an Array

前端 未结 5 1437
南方客
南方客 2021-02-01 15:56

I seem to run into this very often. I need to build a Hash from an array using an attribute of each object in the array as the key.

Lets say I need a hash of example us

5条回答
  •  囚心锁ツ
    2021-02-01 16:20

    You can add to_hash to Array yourself.

    class Array
      def to_hash(&block)
        Hash[*self.map {|e| [block.call(e), e] }.flatten]
      end
    end
    
    ary = [collection of ActiveRecord objects]
    ary.to_hash do |element|
      element.id
    end
    

提交回复
热议问题