所以我明白,给定一个数组,您可以使用自定义比较函数对其进行排序。
Javascript 中类似以下内容:
var arr = [5,4,3,6,7,2];
arr.sort(function(a,b){
if (a < b)
return -1;
else if (a > b)
return 1;
else
return 0;
});
所以我的 friend 说我不需要返回 0 来对这个场景的列表进行排序。此外,他说我们可以从 [true,false]
返回,而不是从 [-1,0,1]
返回。真的吗?
我试图找到他的主张的反例,但我找不到。我无法想象使用他的代码无法正确排序数组的情况。
这是我 friend 给出的例子:
var arr = [5, 4, 3, 6, 7, 2];
arr.sort(function(a, b) {
return a > b;
});
从[-1,0,1]范围内返回
是一个好的做法吗?当整数具有可比性时,有什么必要性?我注意到许多编程语言都是这种情况,而不仅仅是 JavaScript。就像C中的这个例子一样.
最佳答案
告诉你的 friend 他们绝对错了。
[0, 0, 0, -1, -1, -1, 2, 2, 2, 7, 6, 5, 4, 3].sort(function(a, b) { return a > b })
-> [2, 0, 0, -1, -1, -1, 0, 2, 2, 3, 4, 5, 6, 7]
关于javascript - 使用比较函数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19040796/