Подтвердить что ты не робот

Найти самое низкое значение в хеше

a = { 
      1 => ["walmart", "walmart.com", 300.0], 
      2 => ["amazon", "amazon.com", 350.0], 
      ...
    } 

Как найти элемент с наименьшим значением значения float в его массиве?

4b9b3361

Ответ 1

См. решение min_by в ответе ниже. Мой первоначальный ответ на этот вопрос был менее эффективным, как указано в комментарии.

Ответ 2

min_by доступен как метод из модуля Enumerable.

Он получает массив всех значений в Hash, а затем выбирает минимальное значение, основанное на последнем элементе каждого массива.

a.values.min_by(&:last)

Ответ 3

Другим полезным методом является sort_by из модуля Перечислимый. Он упорядочит ваш хэш по возрастанию. Затем переместите метод first, чтобы получить самое низкое значение.

a.sort_by { |key, value| value }.first