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 表示它在第二个之后,但这背后的逻辑是什么? -1 0 和 1 是否适用于排序以外的方法?
最佳答案
我喜欢考虑的方式是,如果你从 b
中减去两个数字 a
,你会得到一个负数,这一定意味着 b
code> 更大,如果你得到一个正数,那么 a
更大,如果你得到 0
那么它们都是相等的。 sort()
将根据较小、较大和相等进行排序。
例如:
-1的情况
a = 6 and b = 7
a - b = -1 // b is larger
情况1
a = 6 and b = 5
a - b = 1 // a is larger
0的情况
a = 6 and b = 6
a - b = 0 // both are equal
关于javascript - 为什么 return -1 在 JavaScript 中将数组的第一个值排序在第二个值之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429241/