[Javascript] 배열 정렬하기

백우진·2022년 12월 21일
0
post-thumbnail

sort()함수

자바스크립트에서 배열을 정렬하기 위해서 sort()함수를 이용할 수 있다.

arr.sort([compareFunction])

compareFunction정렬 순서를 정의하는 함수.

  • 이 값이 생략되면, 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬됩니다.
  • 이 함수는 두 개의 배열 element를 파라미터로 입력 받습니다.
  • 이 함수가 a, b 두개의 element를 파라미터로 입력받을 경우,
  • 이 함수가 리턴하는 값이 0보다 작을 경우,  a가 b보다 앞에 오도록 정렬하고,
  • 이 함수가 리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬합니다.
  • 만약 0을 리턴하면, a와 b의 순서를 변경하지 않습니다.

리턴값

compareFunction 규칙에 따라서 정렬된 배열을 리턴합니다.

이때, 원본 배열인 arr가 정렬이 되고, 리턴하는 값 또한 원본 배열인 arr을 가리키고 있음에 유의

예제1 - 기본형

const arr1 = [2, 1, 3];
const arr2 = ['banana', 'apple', 'orange']

arr1.sort();
document.writeln(arr1 + '<br>'); // [1, 2, 3]

arr2.sort();
document.writeln(arr2 + '<br>'); // ['apple', 'banana', 'orange']


[결과]
1,2,3
apple,banana,orange

예제2 - 오름차순

const arr = [2, 1, 3, 10];

arr.sort(function(a, b)  {
  return a - b;
});
document.writeln(arr + '<br>'); // [1, 2, 3, 10]
  • a > b → 1
  • a == b → 0
  • a < b → -1 을 리턴하여, 주어진 배열을 오름차순으로 정렬 할 수 있다.


예제3 - 내림차순

const arr = [2, 1, 3, 10];

arr.sort(function(a, b)  {
  return b - a;
});
document.writeln(arr + '<br>'); // [10, 3, 2, 1]

예제4 - 문자열 오름차순 정렬

const arr = ['banana', 'b', 'boy'];

arr.sort();
document.writeln(arr + '<br>'); 


// ['b', 'banana', 'boy']
//파라미터가 없다면, 문자열의 유니코드 순서대로 정렬하기에 오름차순에는 필요 없다.

예제5 - 문자열 내림차순 정렬

const arr = ['banana', 'b', 'boy'];

arr.sort(function(a, b) {
  if(a < b) return 1;
  if(a > b) return -1;
  if(a === b) return 0;
});
document.writeln(arr + '<br>'); // ['boy', 'banana', 'b']

예제6 - 객체 정렬하기

const arr = [
  {name: 'banana', price: 3000},
  {name: 'apple', price: 1000},
  {name: 'orange', price: 500}
];

arr.sort(function(a, b) {
  return a.price - b.price;
});

document.writeln(JSON.stringify(arr[0]) + '<br>');
document.writeln(JSON.stringify(arr[1]) + '<br>');
document.writeln(JSON.stringify(arr[2]) + '<br>');

객체를 정렬 할 때에는 특정 Key를 지정해줘야 한다.

profile
안녕하세요.

0개의 댓글

관련 채용 정보