예:
var a=[1,5,3,7];
a.sort(function(a, b) { return b-a});//큰 것부터 작은 것까지 정렬
그렇다면 복잡해요. 이 비교 함수를 포인트 순서대로 어떻게 작성해야 할까요?
비교 함수 f(a,b){...}의 경우 양수가 반환되면 a와 b를 교환해야 한다는 의미이고, 그렇지 않으면 교환되지 않습니다. 따라서 다음 형식에 따라 비교 함수를 작성할 수 있습니다.
function f(a, b) {
if (...) {
return 1
}
return -1
}
그런 다음, 우리가 해야 할 일은 if에 조건을 작성하는 것뿐입니다. 이 조건은 a와 b를 반환하기 위해 교환해야 하는 조건입니다. 예를 들어, var a=["a","A","B","b"]; 는 a.toString().toLowerCase() < .toString().toLowerCase(), a와 b가 교환되므로 이를 사용하여 if 조건을 채웁니다. 비교 함수는 다음과 같습니다.
function f(a, b) {
if (a.toString().toLowerCase() < b.toString().toLowerCase()) {
return 1; 🎜 >}
return -1;
}
또 다른 예: 배열의 요소를 홀수 순서로 정렬하고 그 다음 짝수 순서로 정렬하려면 a와 b를 정렬해야 합니다. a가 짝수이고 b가 b인 경우에만 교환됩니다. 홀수 조건이면 충분하며, a와 b가 모두 홀수 또는 짝수이고 a>b인 경우에만 작은 것부터 큰 것으로 정렬됩니다. 다음과 같습니다:
저자 : 제이차우