我正在尝试使用自定义比较器函数对数组进行排序。
比较器函数只关心两个特定元素之间的顺序。
在下面的示例中,您希望在排序后 'a' 出现在 'b' 之前,但事实并非如此。
var ar = ["b", "c", "d", "a"];
ar.sort(function(x, y) {
if (x == 'a' && y == 'b') { return -1; }
if (x == 'b' && y == 'a') { return 1; }
return 0; // only the order between 'a' and 'b' matters.
});
console.log(ar);
// ar is still ["b", "c", "d", "a"];
那么为什么'a'不在'b'之前呢?有解决方法吗?