테이블 정렬에 관해 이야기할 때 가장 먼저 이야기해야 할 것은 배열 정렬입니다. 배열 정렬은 테이블 정렬의 기본이기 때문입니다. JavaScript는 테이블 정렬을 위해 배열에 대한 sort() 메서드를 제공합니다. 기본적으로 이 메서드는 Array의 배열을 ASCII 코드 순서로 정렬합니다. JavaScript는 배열에 대한 reverse() 메서드도 제공합니다.
예를 살펴보세요.
1 function sortArray(){
2 var arrayTest = ["z",5,2,"a",32,3];
3 arrayTest.sort();
4 경고(arrayTest.toString()); //출력:2,3,32,5,a,z
5 arrayTest.reverse();
6 경고 (arrayTest.toString()); //output:z,a,5,32,3,2
7 }
8 sortArray();
하하, 5는 32보다 큽니다. 분명히 이것은 우리가 원하는 결과가 아닙니다. 방금 말했듯이 sort() 메서드는 ASCII 코드 순서에 따라 정렬합니다. 실제로 sort() 메서드는 비교 함수를 호출할 수 있는 함수 유형의 매개 변수도 허용합니다. 비교 함수가 두 개의 매개 변수를 받을 수 있는 경우 함수 반환 값의 의미는 다음과 같습니다.
- 1: 첫 번째 매개변수가 두 번째 매개변수보다 작습니다.
0: 첫 번째 매개변수가 두 번째 매개변수와 같습니다.
1: 첫 번째 매개변수가 두 번째 매개변수보다 큽니다.
예를 살펴보세요.
1 /**
2 * 비교 함수
3 * * @param {Object} param1 비교할 매개변수 1
4 * @param {Object} param2 비교할 매개변수 2
5 * @return {Number } Param1 & GT인 경우 1을 반환
6*Param1 == Param2가 0을 반환하는 경우
7* Param1 & LT가 -1을 반환하는 경우
8;*/
9 함수 CompareFunc(param1,param2){
10 string" && typeof param2 == "string"){
12 return param1.localeCompare(param2 );
13 }
14 //매개변수 1이 숫자이면 매개변수 2는 문자열입니다
15 if(typeof param1 == "number" && typeof param2 == "string"){
16 return -1;
17 }
18 //매개변수 1이 문자열이면 매개변수 2는 숫자입니다
19 > //두 매개변수가 모두 숫자인 경우
23 If (Typeof Param1 == "Number" && Typeof Param2 == "Number") {
24 if (Param1 & GT; Param2) Return 1
25 if (Param1 == Param2) Return 0; >26 If(param1 < param2) return -1;
27 }
28 }
arrayTest.sort(compareFunc)를 실행하면 올바른 결과를 얻습니다.
이제 localeCompare() 메소드의 사용법을 설명해야 합니다. 이 메소드는 비교할 문자열인 하나의 매개변수만 갖습니다. 구체적인 지침은 다음과 같습니다.
1. String 객체가 매개변수의 문자열 앞에 알파벳순으로 배열되어 있으면 음수가 반환됩니다.
2. String 객체가 문자열 뒤에 알파벳순으로 배열되어 있는 경우 매개변수에는 양수가 반환됩니다.
또한, localeCompare() 메서드에는 또 다른 고유한 기능이 있는데, 이를 확인할 수 있습니다. 메소드 시그니처에는 locale(local, local)이 반영될 수 있습니다. 즉, 지역 특성에 따라 구현되며, 중국어인 경우 문자열의 오름차순으로 구현될 수 있습니다. , 그 구현은 첫 글자의 병음에 따를 수 있습니다. 하하, 이는 프로그램에 한자를 포함하더라도 정렬이 잘못되지 않는다는 의미입니다.
다음 절차를 참고하세요.
1 var testArray = ["Zheng", "zhou", "xin", "source", "xin", "information", "technology", "technology", "shares", "shares", "you ","limited","공","공사" ];
2 document.write(testArray.sort(
3 function CompareFunction(param1,param2){
4 return param1.localeCompare(param2) ; //출력: 주식, 회사, 주식, 기술, 기술, 회사, 정보, 한도, 문자, 문자, 출처, 정저우
5 }
6 ));