为什么javascript中的排序函数返回错误的顺序
我在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必须始终返回相同的值。如果返回不一致的结果,则未定义排序顺序。 因此,比较函数具有以下形式:为什么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
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谢谢你的回答。