Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

“sort()” 함수는 JavaScript 배열을 정렬하는 데 사용되는 내장 함수입니다. 선택적으로 “compareFunction” 함수를 활용하여 정렬 순서를 다양하게 지정할 수 있습니다. 또한 이 함수를 사용하면 숫자나 사용자 정의 객체와 같은 다른 유형의 데이터도 정렬할 수 있습니다.”compareFunction”함수는 정렬에 활용 범위를 더 넓힐 수 있기 때문에 알아 두는 것이 좋습니다.

 

 

 

◎ 구문

 

array.sort(compareFunction)

l  “array”: 정렬하려는 배열입니다.

l  “compareFunction” (선택 사항): 정렬 순서를 지정하는 함수입니다. 이 함수를 사용하지 않으면 배열은 기본적으로 문자열로 정렬됩니다.

 

”compareFunction” 함수 :  “compareFunction”는 정렬에 사용하는 비교 함수입니다. 비교 함수는 두 개의 인수를 받고 아래 규칙에 따라 값을 반환해야 합니다.

l  “compareFunction(a, b)” 0보다 작으면 “a” “b”보다 앞에 놓습니다.

l  “compareFunction(a, b)” 0이면 “a” “b”의 순서를 변경하지 않습니다.

l  “compareFunction(a, b)” 0보다 크면 “b” “a”보다 앞에 놓습니다.

 

 

1. 기본 예제

 

코드는 “fruits” 배열을 알파벳 순서대로 정렬합니다. 기본 동작은 각 요소를 문자열로 변환하고 사전 순으로 정렬하는 것입니다. 정렬 후 “fruits” 배열은 다음과 같이 정렬됩니다. 결과는 “["apple", "banana", "cherry", "date"] 입니다.”

 

const fruits = ["apple", "banana", "cherry", "date"];
fruits.sort(); // 기본적으로 문자열 순서로 정렬됩니다.
 
[출력]
["apple", "banana", "cherry", "date"]

 

 

2. 숫자 배열을 오름차순으로 정렬

 

“compareFunction” 함수를 사용하여 다양한 방식으로 정렬 순서를 지정할 수 있습니다. 아래 샘플은 숫자 배열을 오름차순으로 정렬합니다.

 

const numbers = [4, 2, 9, 1, 5];
numbers.sort((a, b) => a - b);
 
[출력]
[1, 2, 4, 5, 9]

 

 

3. 숫자 배열을 내림차순으로 정렬

 

“compareFunction” 함수로 숫자 배열을 내림차순으로 정렬합니다.

 

const numbers = [4, 2, 9, 1, 5];
numbers.sort((a, b) => b - a);
 
[출력]
[9, 5, 4, 2, 1]

 

 

4. 객체 배열을 특정 속성 기준으로 정렬

 

“compareFunction” 함수로 객체 배열의 price 값을 기준으로 객체 전체를 오름차순으로 정렬합니다.

 

const products = [
  { name: "Laptop", price: 1000 },
  { name: "Phone", price: 500 },
  { name: "Tablet", price: 300 },
];
products.sort((a, b) => a.price - b.price);
 
[출력]
[
  { name: "Tablet", price: 300 },
  { name: "Phone", price: 500 },
  { name: "Laptop", price: 1000 }
]

 

 

5. 문자열 배열을 길이로 정렬

 

“compareFunction” 함수로 각 문자열의 길이를 기준으로 해서 객체를 오름차순으로 정렬합니다.

 

const fruits = ["apple", "banana", "cherry", "date"];
fruits.sort((a, b) => a.length - b.length);
 
[출력]
["date", "apple", "banana", "cherry"]

 

 

6. 대소문자를 무시하고 알파벳 순으로 정렬

 

“compareFunction” 함수로 대소문자 무시한 알파벳 순으로 정렬합니다. toLowerCase() 함수는 문자를 소문자로 변경합니다. 대문자로 변경하는 함수는 toUpperCase() 입니다.

 

[참고]

자바스크립트 대소문자 변경하는 함수 사용하기

https://mainia.tistory.com/7031

 

자바스크립트 대소문자 변경하는 함수 사용하기

자바스크립트에서 문자열의 대소문자를 변경하는 함수는 “toUpperCase()” 및 “toLowerCase()” 함수 입니다. toUpperCase() 는 모든 문자열 소문자로 변경하고 toLowerCase() 는 대문자로 변경합니다. 주소

mainia.tistory.com

 

const names = ["Alice", "bob", "Eve", "Dave"];
names.sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()));
 
[출력]
["Alice", "bob", "Dave", "Eve"]
반응형
Posted by 녹두장군1
,