a = [{player_id:1 , match_num:2, goals: 5}, {player_id:2 , match_num:4, goals: 10}]
a.reduce(0){|avg, p| avg += p[:goals].to_f/p[:match_num]}/a.size
Редактировать: переименовывать ключи и блокировать аргументы, чтобы уменьшить количество символов. Для тех, кому небезразлично.
Во-первых, ваши ключи должны использовать =>
, если вы собираетесь использовать строки в качестве ключей.
reduce
будет перебирать массив и суммировать индивидуальные средние значения для каждого игрока, и, наконец, мы разделим этот результат на количество игроков. «0» в скобках - ваш начальный номер для reduce
.