Programing/JavaScript

Javascript :: sort(), 배열 정렬하기 (숫자, 문자, 객체, 오름차순, 내림차순)

lolly3 2023. 2. 25. 02:22

JavaScript 에서 배열 정렬하기 위해서 많이 쓰이는 sort() 를 알아보겠습니다.

sort() 메소드는 배열 요소의 자리를 정렬하는 데 사용됩니다.

아래 순서대로 살펴보겠습니다.

 

  1. 문자열 정렬하기
  2. 숫자 오름차순 정렬 
  3. 숫자 내림차순 정렬
  4. 객체 정렬

1.  문자열 정렬하기

기본적으로 sort()는 문자열을 알파벳 순으로 정렬합니다.

 

See the Pen Untitled by lkosvme (@lkosvme) on CodePen.

 

 

2.  숫자 오름차순 정렬하기

아래 예제는 숫자 배열을 만들고 오름차순으로 정렬하는 방법입니다.

 

See the Pen Untitled by lkosvme (@lkosvme) on CodePen.

numbers.sort((a, b) => a - b)

위에 소스코드를 보충 하자면

numbers.sort((a, b) => a - b); 에서 (a, b) => a - b 는 콜백 함수입니다.

이 콜백 함수는 두 개의 매개변수 a와 b를 받아서, a - b의 결과값을 반환합니다.

a - b 의 값이 양수일 경우 a와 b의 순서를 바꿔줍니다.

이를 반복하면 a가 b보다 작은 요소부터 큰 요소로 반환하여 오름차순으로 정렬하게 됩니다.

 

3.  숫자 내림차순 정렬하기

위에 코드가 이해가 되었다면 내림차순은 너무도 쉽겠죠.

순서만 바꿔주면 됩니다. a - b 에서 b - a 로.

 

See the Pen sort() 숫자 역정렬 by lkosvme (@lkosvme) on CodePen.

 

4.  객체 정렬하기

객체 정렬은 실제로 가장 많이 쓰일 것이라고 생각이 듭니다.

위에 내용의 반복입니다.

 

See the Pen sort() 객체정렬 by lkosvme (@lkosvme) on CodePen.

 

마찬가지로 age 의 역순으로 정렬하려면 아래처럼 순서를 변경 해주면 됩니다.

// people.sort((a, b) => a.age - b.age);
// 위에 a.age - b.age 가 반대로 가면 되겠죠
people.sort((a, b) => b.age - a.age);

사실 이해하면 쉬운 코드인데, 그동안 이해하려고 안하고 복붙으로 사용했던거 같습니다.

다들 즐코합시다!