以下是上下文:
function compare (value1, value2) {
if(value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
var values = [0, 6, 8, 5];
values.sort(compare);
alert(values); // 0,5,6,8
-1
会返回最后一个参数吗?就像在数组中使用-1
一样?
答案 0 :(得分:15)
否,比较函数中的-1,0和1用于告诉调用者第一个值应该如何相对于第二个值进行排序。 -1表示第一个在第二个之前,1表示它在之后,0表示它们是等效的。
sort
函数使用您传递的函数中的比较来对函数进行排序。例如,如果您想按相反的顺序排序,可以将第3行return 1;
和第5行return -1
排成一行。
答案 1 :(得分:6)
sort
方法采用可选的比较函数,该函数根据以下内容确定生成的排序顺序:
value1
排序为低于value2
的索引value1
和value2
的索引相对于彼此保持不变value1
排序为比value2
更高的索引请注意,根据这些规则,您可以将比较功能缩短为以下内容:
function compare(value1, value2) {
return value1 - value2;
}
答案 2 :(得分:5)
-1
表示value1
小于value2
0
表示value1
等于value2
1
表示value1
大于value2