Javascript TypeError:比较函数必须是函数或未定义

Javascript TypeError:比较函数必须是函数或未定义,javascript,algorithm,Javascript,Algorithm,编写一个名为sort_by_average的函数,该函数将键值存储的列表/数组作为参数,其中每个键值存储都有关键字ratings、budget和box_office,其中budget和box_office是整数,ratings是整数列表。根据评分中的平均值对输入进行排序 function sort_by_average(lista){ for(var i of lista){ lista.sort(i.ratings.reduce/i.ratings.length);

编写一个名为sort_by_average的函数,该函数将键值存储的列表/数组作为参数,其中每个键值存储都有关键字ratings、budget和box_office,其中budget和box_office是整数,ratings是整数列表。根据评分中的平均值对输入进行排序

function sort_by_average(lista){
    for(var i of lista){
        lista.sort(i.ratings.reduce/i.ratings.length);
    }
    return lista;
}
我得到TypeError:比较函数必须是函数或未定义。我怎样才能解决这个问题

如果提供了compareFunction,则会删除所有未定义的数组元素 根据比较函数all的返回值排序 未定义的元素排序到数组的末尾,不调用 比较函数

因此,您必须创建一个这样的函数,并将其传递给排序:

function compare(a, b) {
  if (a is less than b by some ordering criterion) {
    return -1;
  }
  if (a is greater than b by the ordering criterion) {
    return 1;
  }
  // a must be equal to b
  return 0;
}
Hello mate,需要一个函数作为参数或未定义,这就是您遇到TypeError的原因。您也不必在列表中循环排序,您可以查看上面链接中提供的示例。