Напишите функцию с именем sort_by_average_rating
, которая принимает список / массив хранилищ значений ключей в качестве параметра, где каждое хранилище значений ключей имеет ключи ratings
, budget
и box_office
, где budget
и box_office
- целые числа, а рейтинги - список целых чисел. Сортировать данные на основе среднего значения в ratings
.
Я попытался добавить все в цикл for, когда ключ равен ["ratings"]
, после чего я усредняю результаты из двух циклов for. Наконец, я использовал отдельную функцию для сортировки всего.
function key(a,b){
for(var i = 0; i < a.length; i++){
tol1 += a[i]["ratings"];
for(var x = 0; x < b.length; x++) {
tol2 += b[x]["ratings"];
}
var average = (tol1/tol2);
}
return average;
}
function key(x,y){
if (x[key] < x[key]) { return -1; }
if (y[key] > y[key]) { return 1; }
return 0;
}
function sort_by_average_rating(b){
b.sort(key)
}
Результат:
[
{'box_office': 12574015, 'budget': 3986053.18, 'ratings': [8, 7, 1]},
{'box_office': 44855251, 'budget': 3301717.62, 'ratings': [7, 1, 1]},
{'box_office': 36625133, 'budget': 8678591, 'ratings': [7, 6, 2, 8]},
{'box_office': 48397691, 'budget': 15916122.88, 'ratings': [7, 3, 8, 8, 6, 8]},
{'box_office': 43344800, 'budget': 4373679.25, 'ratings': [1, 1, 7, 4]}
]
Ожидаемый:
[
{'box_office': 44855251, 'budget': 3301717.62, 'ratings': [7, 1, 1]},
{'box_office': 43344800, 'budget': 4373679.25, 'ratings': [1, 1, 7, 4]},
{'box_office': 12574015, 'budget': 3986053.18, 'ratings': [8, 7, 1]},
{'box_office': 36625133, 'budget': 8678591.0, 'ratings': [7, 6, 2, 8]},
{'box_office': 48397691, 'budget': 15916122.88, 'ratings': [7, 3, 8, 8, 6, 8]}
]