티스토리 뷰

▶자바스크립트 정렬 함수 - sort

오늘은 자바스크립트 정렬 함수인 sort에 대해 알아보려고 합니다.

파이썬을 먼저 배운 입장에서는 그냥 sort하면 sort 되는 줄.......

 

🔎 sort ?


자바스크립트 배열의 내장 함수에 sort()가 있는데요.

명칭 그대로 배열 안의 원소를 정렬하는 함수입니다.

 

📌 문법

 

arrayObj.sort(sortFunction)

 

arrayobj 자리에는 Array 객체

sortFunction 자리에는 요소 순서를 결정하는 데 사용되는 함수의 이름입니다.

 

sortFunction 자리를 생략하면 오름차순, ASCII 문자 순서로 정렬됩니다.

 

📌 문자 정렬

문자 정렬의 경우에는 ASCII 문자 순서로 정렬하면 됩니다.

let alphabets = ['b', 'd', 'a', 'c', 'f', 'e'];

// 일반적인 방법
alphabets.sort(); // ['a', 'b', 'c', 'd', 'e', 'f']

→ 문자 정렬은 sort()

 

📌 숫자 정렬

숫자 정렬의 경우 ASCII 문자 순서로 정렬하게 되면 제대로 정렬되지 않습니다.

이때는 함수 자리에 정렬 함수를 작성해 주어야 합니다.

let numbers = [5, 2, 3, 1, 4, 11, 10];

// 이렇게 하면 안됨
numbers.sort(); // [1, 10, 11, 2, 3, 4, 5]

// 이렇게 해야 함
// 1. 오름차순
numbers.sort((a, b) => {
  return a - b; // [1, 2, 3, 4, 5, 10, 11]
});

// 2. 내림차순
numbers.sort((a, b) => {
  return b - a; // [11, 10, 5, 4, 3, 2, 1]
})

→ 숫자 정렬에서 오름차순은 (a, b) => a - b, 내림차순은 (a, b) => b - a

 

📌 Object 정렬

let student = [
  { name: '재석', age: 21 },
  { name: '광희', age: 25 },
  { name: '형돈', age: 13 },
  { name: '명수', age: 44 },
];

// 이름순으로 정렬---------------------------------------
student.sort((a, b) => { // 오름차순
  return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
  // 광희, 명수, 재석, 형돈
});

student.sort((a, b) => { // 내림차순
  return a.name > b.name ? -1 : a.name < b.name ? 1 : 0;
  // 형돈, 재석, 명수, 광희
})
// -----------------------------------------------------

// 나이순으로 정렬--------------------------------------
student.sort((a, b) => { // 오름차순
  return a.age - b.age; // 13, 21, 25, 44
});

student.sort((a, b) => {
  return b.age - a.age; // 44, 25, 21, 13
});
// ----------------------------------------------------

 

728x90
LIST
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함