Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么javascript中的排序函数返回错误的顺序_Javascript_Arrays_Sorting - Fatal编程技术网

为什么javascript中的排序函数返回错误的顺序

为什么javascript中的排序函数返回错误的顺序,javascript,arrays,sorting,Javascript,Arrays,Sorting,我在javascript中使用sort函数对数组进行排序,下面是我的数组 var arr=[11188446,-9046,-1719,41279,112047,3855492573808477]; arr.sorta,b=>{返回a-b>0}; 但我的顺序错了,结果如下 [11, 1118, -9046, -1719, 41, 279, 2047, 3855, 4925, 7380, 8446, 8477] 这是截图。那么我错在哪里呢 如果提供了compareFunction,则将根据c

我在javascript中使用sort函数对数组进行排序,下面是我的数组

var arr=[11188446,-9046,-1719,41279,112047,3855492573808477]; arr.sorta,b=>{返回a-b>0};

但我的顺序错了,结果如下

[11, 1118, -9046, -1719, 41, 279, 2047, 3855, 4925, 7380, 8446, 8477]

这是截图。那么我错在哪里呢

如果提供了compareFunction,则将根据compare函数的返回值对数组元素进行排序。如果a和b是要比较的两个元素,则:

如果CompareFunction a,b小于0,则将a排序为比b低的索引,即a排在第一位。 如果compareFunctiona、b返回0,则a和b彼此保持不变,但根据所有不同的元素进行排序。注意:ECMAscript标准不保证这种行为,因此并非所有浏览器(如至少可追溯到2003年的Mozilla版本)都遵守这一点。 如果CompareFunction a、b大于0,请将b排序为比a低的索引。 当给定一对特定的元素a和b作为其两个参数时,compareFunctiona、b必须始终返回相同的值。如果返回不一致的结果,则未定义排序顺序。 因此,比较函数具有以下形式:

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;
}
var arr=[11188446,-9046,-1719,41279,112047,3855492573808477]; A、b、A、b{ 返回a-b;//升序 }; console.logarr; A、b、A、b{ 返回b-a;//降序 };
console.logarr;您需要或只需要arr.sorta,b=>a-b;。返回a-b>0;没有任何意义。因为您没有正确实现排序回调。请阅读。@Xufox谢谢。我的错。@FelixKling谢谢你的回答。