이 기사의 예에서는 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])?(x[1].localeCompare(y[1])):(x[0].localeCompare(y[0])) }); }
그래서 arrayObject.sort(sortFunction)의 정렬 기능은 여전히 매우 강력하며 마침내 SQL 문에서 ORDER BY와 동일한 기능을 구현할 수 있습니다.
이 기사가 JavaScript 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.