【发布时间】:2013-10-03 03:54:27
【问题描述】:
所以我知道给定一个数组,您可以使用自定义比较函数对其进行排序。
因此在 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;
});
所以我的朋友说我不需要返回 0 来对这种情况下的列表进行排序。此外,他说我们可以从[true,false] 返回,而不是从[-1,0,1] 返回。真的吗?
我试图找到一个反例来反驳他的主张,但我做不到。我无法想象使用他的代码没有正确排序数组的情况。
这是我朋友给出的例子:
var arr = [5, 4, 3, 6, 7, 2];
arr.sort(function(a, b) {
return a > b;
});
从[-1,0,1] 的范围返回是一种好习惯吗?当整数具有可比性时,有什么必要性?我注意到这种情况适用于多种编程语言,而不仅仅是 javascript。就像C 中的这个例子一样。
【问题讨论】:
-
});(两次!)看起来不对。 -
请注意,它们不必只是
[-1, 0, 1],它们可以是任何负值、0 或任何正值。这允许你做return a - b;。 -
@Phil 所说的,你应该使用关键字
var,除非你希望arr是全球性的。
标签: javascript sorting