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

时间:2018-11-14 15:45:04

标签: javascript algorithm

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

function sort_by_average(lista){
    for(var i of lista){
        lista.sort(i.ratings.reduce/i.ratings.length);
    }
    return lista;
}

我收到TypeError:比较函数必须是函数或未定义。我该如何解决?

1 个答案:

答案 0 :(得分:1)

  

如果提供了compareFunction,则所有未定义的数组元素为   根据比较函数的返回值排序(全部   未定义的元素排序到数组的末尾,不调用   compareFunction)。

所以您必须创建一个像这样的函数并将其传递给sort():

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;
}

More information