mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Sunday, December 31, 2006

자바스크립트] 대소문자 구분 없이 문자열 배열 정렬/소트/소팅; JavaScript Sort Ignore Case, String Array


영문 문자열을 ABC순으로 정렬할 때, 기본적으로 대소문자를 구분하여 소팅하기에 결과가 부자연스럽게 나옵니다. 대소문자 구분 없이 영문 문자열을 정렬하는 방법입니다.

JavaScript: 영문 알파벳 대소문자 구분 없이 소팅 예제


<script type="text/javascript">

// 문자열 배열 선언과 초기화
var names = new Array( 'bbb', 'AAA', 'DDD', 'CCC', 'aaa' );



// 대소문자 구분하여 정렬
document.write(names.sort() + '<br />');
// 출력 결과: AAA,CCC,DDD,aaa,bbb



// 대소문자 구분 없이 정렬
document.write(names.sort(compStringIgnoreCase) + '<br />');
// 출력 결과: AAA,aaa,bbb,CCC,DDD



// 대소문자 구분 없이 내림차순 정렬
var s = names.sort(compStringIgnoreCase);
s.reverse();
document.write(s + '<br />');
// 출력 결과: DDD,CCC,bbb,aaa,AAA



// 대소문자 구분없이 정렬에, 내부적으로 필요한 비교 함수
function compStringIgnoreCase(a, b) {
  if (a.toLowerCase() < b.toLowerCase()) return -1;
  if (b.toLowerCase() < a.toLowerCase()) return 1;
  return 0;
}

</script>


비교 함수인 compStringIgnoreCase() 의 부등호를 반대로 하면, "대소문자 구분없이 역순 정렬"을 할 수 있긴 하지만, 그러면 aaa와 AAA 의 순서가 좀 이상하게 나오는 문제가 있기에, reverse() 로 뒤집어 주었습니다. reverse()를 사용하여 역순으로 만든다고 해도 속도가 느려지지는 않습니다.


▶▶ 자바스크립트] 문자열 배열, 가나다 순 정렬/내림차순 소팅; Sort String Array, JavaScript




tag: html
HTML | CSS | 자바스크립트 JavaScript

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top