JS 그룹 sort의 비교 함수를 어떻게 씁니까

1295 단어
예를 들면:
  var a=[1,5,3,7];
  a.sort(function(a, b) { return b-a});//큰 것 부터 작은 것 까지 배열 하다
그럼 복잡한 순서라면 이 비교 함수를 어떻게 써야 하나요?
비교 함수 function f (a, b) {...}의 경우정수를 되돌리면 a와 b는 교환이 필요하고 그렇지 않으면 교환하지 않는다는 것을 의미한다.그래서 우리는 아래의 형식에 따라 비교 함수를 모두 쓸 수 있다.
 
  
function f(a, b) {
if (...) {
return 1;
}
return -1;
}

그리고 우리가 해야 할 일은if안에 있는 조건을 쓰는 것이다. 이 조건은 a, b가 교환해야 하는 조건으로 돌아가는 것이다.예를 들어vara=["a", "A", "B", "b"];a.toString () 으로만 대소문자 구분 없이 큰 순서에서 작은 순서로 정렬합니다.toLowerCase() < b.toString().toLowerCase()는 a, b를 교환하기 때문에 이걸로 if 조건을 채우면 됩니다.비교 함수는 다음과 같습니다.
  function f(a, b) {
if (a.toString().toLowerCase() < b.toString().toLowerCase()) {
return 1;
}
return -1;
}
다시 예를 들어 수조의 원소를 먼저 홀수 후 짝수 순서에 따라 배열하려면 a, b교환이 필요하면 a가 짝수이고 b가 홀수 조건만 만족시키면 된다. 다시 작은 것부터 큰 것까지 정렬하고 a, b가 모두 홀수 또는 짝수이고 a>b를 만족시키면 된다.다음과 같습니다.
var a = [1, 7, 3, 9, 5, 6, 2, 8, 4]; function f(a, b) { if (0 == a % 2 && 1 == b % 2) { return 1; } if ((1 == a % 2 && 1 == b % 2 || 0 == a % 2 && 0 == b % 2) && a > b) { return 1; } return -1; } alert(a.sort(f));
[Ctrl+A 전체 선택: 외부 Js를 가져오려면 새로 고쳐야 합니다.]
작성자: Jay Chow

좋은 웹페이지 즐겨찾기