For example:
var a=[1,5,3,7];
a.sort(function(a, b) { return b-a});//Arrange from large to small
Then if it is complicated How should we write this comparison function in the order of points?
For the comparison function function f(a,b){...}, if a positive number is returned, it means that a and b need to be exchanged, otherwise they will not be exchanged. So we can write comparison functions according to the following format:
function f(a, b) {
if (...) {
return 1;
}
return -1;
}
Then , all we have to do is write the condition in if, this condition is the condition that needs to be exchanged to return a and b. For example: var a=["a","A","B","b"]; is case-insensitive and sorted from large to small, only if a.toString().toLowerCase() < b When .toString().toLowerCase(), a and b are exchanged, so use this to fill in the if condition. The comparison function is:
function f(a, b) {
if (a.toString().toLowerCase() < b.toString().toLowerCase()) {
return 1;
}
return -1;
}
Another example: if you want to arrange the elements of the array in the order of odd numbers first and then even numbers, then if a and b need to be exchanged, only if a is an even number and b is The odd number condition is sufficient, and then sorted from small to large, only when a and b are both odd or even numbers and a>b. As follows:
]
Author: JayChow