JavaScript | array.sort();

앙두·2022년 12월 19일
0

JavaScript

목록 보기
4/21

array.sort([compareFunction])

-> 배열의 정렬에 관한 메소드


정렬 기준은
ASCII (American Standard Code for Information Interchange)
: 영문 알파벳을 사용하는 문자 인코딩 (컴퓨터가 이용할 수 있는 신호로 만드는 것)
ASCII는 정보교환용 7비트 부호체계
52개의 영문알파벳 대소문자, 10개의 숫자, 32개의 특수문자, 하나의 공백문자를 출력할 수 있다

array.sort([compareFunction])

compareFunction은 두 개의 객체(compare1, compare2)를 비교하여 크고 작음을 리턴하여 정렬시키는 함수이다 (optional)
  1. 리턴 값이 -1(0보다 작은 수)면 compare1을 compare2보다 낮은 요소로 정렬
  2. 리턴 값이 0이면 동일하게 정렬
  3. 리턴 값이 1(0보다 큰 수)이면 compare1을 compare2보다 큰 요소로 정렬

// 숫자 배열 정렬
// sort 메소드인 compareFunction 사용

// 오름차순
const num = [20, 8, 999, 8394, 12, 1, 23, 33];
num.sort(function(compare1, compare2){
  return compare1-compare2;
})
// [ 1, 8, 12, 20, 23, 33, 999, 8394 ]

// 내림차순
num.sort(function(compare1, compare2){
  return compare2-compare1;
})
// [ 8394, 999, 33, 23, 20, 12, 8, 1 ]

문자열 배열 정렬도 compareFunction 함수를 사용한다
const str = ['hyunjoo', 'Seorina', 'minah', 'yeojun', 'ayoung']

str.sort(function(compare1, compare2){
   // 소대문자 구분없이 비교하기 위해 toUpperCase()를 사용해준다
  let compareOne = compare1.toUpperCase();
  let compareTwo = compare2.toUpperCase();
  
  if (compareOne < compareTwo) return  -1;
  if (compareOne > compareTwo) return 1;
  return 0;
})
// [ 'ayoung', 'hyunjoo', 'minah', 'Seorina', 'yeojun' ]
profile
쓸모있는 기술자

0개의 댓글