자바스크립트 객체 array_javascript 스킬 정렬 방법

WBOY
풀어 주다: 2016-05-16 15:35:53
원래의
1382명이 탐색했습니다.

이 기사의 예에서는 JavaScript 객체 배열의 정렬 방법을 설명합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

Javascript의 배열 정렬 기능 정렬 방법은 기본적으로 ASCII 문자 순서에 따라 오름차순으로 정렬됩니다.
arrayobj.sort(sortfunction);

매개변수: sortFunction

선택사항. 요소의 순서를 결정하는 데 사용되는 함수의 이름입니다. 이 매개변수를 생략하면 요소는 ASCII 문자 오름차순으로 정렬됩니다.

sort 메서드는 Array 객체를 적절하게 정렬합니다. 실행 중에 새로운 Array 객체가 생성되지 않습니다.

sortfunction 인수에 함수가 제공되는 경우 함수는 다음 값 중 하나를 반환해야 합니다.

전달된 첫 번째 매개변수가 두 번째 매개변수보다 작은 경우 음수 값입니다.
두 인수가 모두 같으면 0입니다.
첫 번째 인수가 두 번째 인수보다 큰 경우 양수 값입니다.

위 방법은 1차원 정렬에 매우 편리한데, SQL 문에서 ORDER BY와 같은 다중 키 값 정렬을 어떻게 해야 할까요?

다차원 배열의 다중 키 값 정렬은 더 복잡해야 하지만 이를 해결하기 위해 루프를 사용할 필요는 없습니다. 실제 해결책은 동일합니다.

번호:

다음 예는 SQL 문에서 ORDER BY col5, col9, col7과 같이 숫자의 다차원 배열을 5열, 9열, 3열의 순서로 정렬하는 것입니다. 숫자의 경우 두 항목을 직접 빼고 그 결과를 반환 값으로 사용할 수 있습니다.

<script language=javascript>
 var myArray = new Array();
 for(var i=0;i<10;i++ ){
 myArray[i]=new Array();
 myArray[i][0]=Math.floor(Math.random()*10); 
 myArray[i][1]=Math.floor(Math.random()*10);
 myArray[i][2]=Math.floor(Math.random()*10);
 myArray[i][3]=Math.floor(Math.random()*10);
 myArray[i][4]=Math.floor(Math.random()*10);
 myArray[i][5]=Math.floor(Math.random()*10);
 myArray[i][6]=Math.floor(Math.random()*10);
 myArray[i][7]=Math.floor(Math.random()*10);
 myArray[i][8]=Math.floor(Math.random()*10);
 }
 myArray.sort(
   function(x, y) {
    if(x[4]!=y[4]){
      return x[4]-y[4];
    } else if(x[8]!=y[8]){
      return x[8]-y[8];
    } else if(x[6]!=y[6]){
      return x[6]-y[6];
    } else {
      return 1;
    }
  }
  );
 for(var i=0;i<myArray.length;i++ )...{
 document.write(myArray[i].join(",") + "<br/>");
 }
</script>
로그인 후 복사

캐릭터:

문자인 경우 sortFunction의 항목은 숫자처럼 직접 뺄 수 없습니다. 반환 값을 충족하려면 비교를 위해 str1.localeCompare(str2) 메서드를 호출해야 합니다. 다차원 배열의 1열과 2열을 정렬하는 경우는 다음과 같습니다.

function sortFunction(array) {
 return array.sort( function(x, y) ...{
 return (x[0]==y[0])&#63;(x[1].localeCompare(y[1])):(x[0].localeCompare(y[0]))
 });
}

로그인 후 복사

그래서 arrayObject.sort(sortFunction)의 정렬 기능은 여전히 ​​매우 강력하며 마침내 SQL 문에서 ORDER BY와 동일한 기능을 구현할 수 있습니다.

이 기사가 JavaScript 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿