[ruby] 특정 속성에 대한 최대 값을 가진 Ruby 배열의 요소 찾기

아마도이 질문에 대한 아주 간단한 대답이있을 것입니다. 그러나 저는 지금 당장 제 삶에서 그것을 알아낼 수 없습니다. 특정 유형의 객체에 대한 루비 배열이 있고 모두 특정 필드가있는 경우 해당 필드에 대해 가장 큰 값을 가진 배열 요소를 어떻게 찾습니까?



답변

array.max_by do |element|
  element.field
end

또는:

array.max_by(&:field)


답변

도움이 되나요?

my_array.max {|a,b| a.attr <=> b.attr }

(나는 귀하의 필드에 이름이 있다고 가정합니다 attr)


답변

배열을 정렬 한 다음 최대, 최소, 두 번째로 큰 값 등을 얻을 수도 있습니다.

array = array.sort_by {|k,v| v}.reverse

puts hash[0]["key"]


답변