我在javascript中使用sort
函数来排序数组,这里是我的数组
var arr=[1118, 8446, -9046, -1719, 41, 279, 11, 2047, 3855, 4925, 7380, 8477];
arr.sort((a,b) => {return a-b > 0});
但是订单错了,结果就是
[11, 1118, -9046, -1719, 41, 279, 2047, 3855, 4925, 7380, 8446, 8477]
这是截图。所以我错了?
答案 0 :(得分:2)
如果提供compareFunction,则根据compare函数的返回值对数组元素进行排序。如果a和b是要比较的两个元素,那么:
如果compareFunction(a,b)小于0,则将a排序为低于b的索引,即a先到先得。 如果compareFunction(a,b)返回0,则保持a和b相对于彼此保持不变,但是对于所有不同的元素进行排序。注意:ECMAscript标准不保证这种行为,因此并非所有浏览器(例如可追溯到至少2003年的Mozilla版本)都尊重这一点。 如果compareFunction(a,b)大于0,则将b排序为低于a的索引。 当给定一对特定元素a和b作为其两个参数时,compareFunction(a,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;
}
答案 1 :(得分:1)
xs