0

私はこのハッシュを持っています:

@hash = [
  {0=>"1", 1=>"A1", 2=>"something", 3=>"10"}, 
  {0=>"2", 1=>"A1", 2=>"something", 3=>"8"},
  {0=>"3", 1=>"A2", 2=>"something", 3=>"3"},
  {0=>"4", 1=>"A2", 2=>"something", 3=>"13"}
]

最初の列 (A1、A2) の値を取得してから、データを操作する必要がありgroup_byます (たとえば、A1 と A2 のインデックス 3 を持つアイテムの最小値を選択します)。

@hash.each do |item|
  item.each do |item2|
    item2.group_by{ |i| i[1] }.each do |p|
      puts p
    end
  end
end

しかし、私はまだそれらのデータにアクセスする方法を理解できません。アドバイスをいただければ幸いです。

4

1 に答える 1

0

次を試してください

>> grouped = @hash.group_by { |h| h[1] }
>> grouped['A1'] # [{0=>"1", 1=>"A1", 2=>"something", 3=>"10"}, {0=>"2", 1=>"A1", 2=>"something", 3=>"8"}]
>> grouped['A2'] # [{0=>"3", 1=>"A2", 2=>"something", 3=>"3"}, {0=>"4", 1=>"A2", 2=>"something", 3=>"13"}]

最大値または最小値を取得するには、

>> grouped['A1'].max_by { |h| h[3].to_i }[3] # 10
>> grouped['A1'].min_by { |h| h[3].to_i }[3] # 8
于 2013-03-04T08:50:27.870 に答える