본문 바로가기
JavaScript

[자바스크립트] 배열 정렬하기 sort(), 오름차순, 내림차순 정리법

by 메이플 🍁 2022. 3. 18.

1. 배열 기본 문법 1

배열 안에 있는 원소를 문자열로 바꿔 유니코드의 순서대로 오름차순 정렬해준다.

기존 배열을 변경해준다

Array.sort()

👉  문자정렬 예제

알파벳 순서대로 months 배열안에 있는 데이터가 정렬된다.

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// ["Dec", "Feb", "Jan", "March"]

👉  숫자정렬 예제

sort() 함수는 배열안에 있는 원소를 문자열로 바꿔서 정렬해주기 때문에 숫자크기대로 정렬이 되지 않는다.

const numbers = [25, 13, 1, 6, 59]
const result =  numbers.sort();
console.log(result);
// [1, 13, 25, 59, 6]

 

2. 배열 기본 문법 2

숫자의 크기대로 정렬해주고 싶을때는 sort() 함수안에 파라미터로 배열의 값을 비교해줄 수 있는 함수를 전달해준다.

Array.sort(compareFunction)

2.1 오름차순 (작은수부터 큰수)

Array 안에 있는 첫번째 값을 a, 두번째 값을 b라고 했을 때 a - b식으로 리턴값이 양수인지, 음수인지, 0인지에 따라 원소를 이동시켜준다.

1) a - b가 음수일때: a가 b보다 작으므로 a를 b의 앞으로 보낸다

2) a - b가 0일때: a, b 값이 동일하므로 자리를 바꾸지 않고 그대로 있는다

3) a - b가 양수일때: a가 b보다 크면 a를 뒤로 보낸다

결과: 작은 수부터 큰수로 정렬된다

Array.sort((a, b) => {
  return a - b;
})

👉  오름차순 예제

const numbers = [25, 13, 1, 6, 59]
const result =  numbers.sort((a, b) => {
  return a - b;
});
console.log(result);
// [1, 6, 13, 25, 59]

2.3 내림차순 (큰수부터 작은수)

a - b식이 아닌 b - a식을 리턴하면 큰수부터 작은수가 정렬되는 내림차순 형태가 된다. 

Array.sort((a, b) => {
  return b - a;
})

👉  내림차순 예제

const numbers = [25, 13, 1, 6, 59]
const result =  numbers.sort((a, b) => {
  return b - a;
});
console.log(result);
// [59, 25, 13, 6, 1]

댓글