Есть хеш следущего вида:
movies = {
1 "Interstellar" => {
2 "John" => 10,
3 "Jack" => 3
4 },
5 "Psyho" => {
6 "Jack" => 9,
7 "Jane" => 10
8 },
9 "Seven" => {
10
11 }
12 }
Необходимо найти среднее значение рейтинга для каждого фильма и вывести список фильмов отсортированными по убыванию.
Средний рейтинг я вычислил так:
movies.each do |x|
current_movie = x[0]
avg_rate = movies[current_movie].values.map.sum.fdiv(movies[current_movie].size)
if movies[current_movie].empty?
puts "Rating is not available for #{x[0]}"
else
puts "#{x[0]} is rated #{avg_rate.to_s}"
end
end
Я не уверен каким способом отсортировать вывод. Как я вижу нужно создать новый хеш, записать туда данные ключ = > значение как movie => avg_rating и сделать .sort.
Либо есть другое более короткое решение?