>  기사  >  웹 프론트엔드  >  JavaScript 연구 노트 (3) 배열 정렬과 한자 정렬에서 localeCompare() 메소드 사용

JavaScript 연구 노트 (3) 배열 정렬과 한자 정렬에서 localeCompare() 메소드 사용

黄舟
黄舟원래의
2016-12-19 17:32:371695검색

테이블 정렬에 관해 이야기할 때 가장 먼저 이야기해야 할 것은 배열 정렬입니다. 배열 정렬은 테이블 정렬의 기본이기 때문입니다. 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 /**
*/ 9 함수 Comparefunc (Param1, Param2) {
10 // 두 매개변수가 모두 문자열인 경우 유형
11 if (typeof param1 == "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 if( typeof param1 = = "string" && typeof param2 == "number"){
20 == " number" && typeof param2 == "number"){
24 if(param1 > param2) return 1;
25 if(param1 == param2) return 0;
26 if(para m1 < param2 ) return -1;
27} 28} arrayTest.sort(comparefunc)를 실행하면 올바른 결과를 얻습니다.
이제 localeCompare() 메소드의 사용법을 설명해야 합니다. 이 메소드는 비교할 문자열인 하나의 매개변수만 갖습니다. 구체적인 지침은 다음과 같습니다.
1. String 객체가 매개변수의 문자열 앞에 알파벳순으로 배열되어 있으면 음수가 반환됩니다.
2. String 객체가 문자열 뒤에 알파벳순으로 배열되어 있는 경우 매개변수에는 양수가 반환됩니다.
3. String 개체가 매개변수에 있는 문자열과 같으면 0이 반환됩니다.
또한, localeCompare() 메서드에는 또 다른 고유한 기능이 있는데, 이를 확인할 수 있습니다. 메소드 시그니처에는 locale(local, local)이 반영될 수 있습니다. 즉, 지역 특성에 따라 구현되며, 중국어인 경우 문자열의 오름차순으로 구현될 수 있습니다. , 그 구현은 첫 글자의 병음에 따를 수 있습니다. 하하, 이는 프로그램에 한자를 포함하더라도 정렬이 잘못되지 않는다는 의미입니다.
다음 절차를 참조하세요.
1 var testArray = ["Zheng", "zhou", "xin", "source", "xin", "information", "technology", "technical", " stock" , "share", "you", "limit", "public", "division" ];
2 document.write(testArray.sort(
3) function CompareFunction(param1,param2){
4 return param1.localeCompare(param2); //출력: fen, 회사, 주식, 기술, 기술, 회사, 정보, 제한, 문자, 정보, 출처, Zhengzhou
5 } }
6 )) ;

위 내용은 배열정렬과 한자정렬에서의 localeCompare() 메소드 사용에 대한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.