[JS] 배열 정렬하기

codeCYJ·2022년 5월 30일
0

javaScript

목록 보기
14/35

문자열 배열 정렬

문자열 배열의 경우 sort() 호출 시, 알파벳 순서로 정렬됩니다.

오름차순)
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];
arr.sort();
console.log(arr); // [ 'apple', 'banana', 'grape', 'kiwi', 'melon' ]

내림차순)
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];
arr.sort(function (a, b) {
    if (a > b) return -1;
    else if (b > a) return 1;
    else return 0;
  });
console.log(arr);  //[ 'melon', 'kiwi', 'grape', 'banana', 'apple' ]

내림차순2)
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];
arr.sort();
arr.reverse();  // 오름차순 정렬 이 후 뒤집기
console.log(arr); //[ 'melon', 'kiwi', 'grape', 'banana', 'apple' ]

숫자 배열 정렬

숫자 배열에 sort() 수행 시, 숫자를 문자열로 변환하여 정렬을 합니다. 문자열 11은 2보다 작기 때문에 아래와 같이 숫자 크기대로 정렬되지 않습니다. 따라서 이 방법으로 정렬하면 안됩니다.

const arr = [22, 11, 2, 9, 1, 5];
arr.sort();
console.log(arr); //[ 1, 11, 2, 22, 5, 9 ]
오름차순)
const arr = [22, 11, 2, 9, 1, 5];
arr.sort(function (a, b) {
  return a - b;
});
console.log(arr); // [ 1, 2, 5, 9, 11, 22 ]
내림차순)
const arr = [22, 11, 2, 9, 1, 5];
arr.sort((a, b) => b - a);
console.log(arr); // [ 22, 11, 9, 5, 2, 1 ]

객체 배열 비교

객체에서 비교할 요소를 선택하고 크기를 비교하면 됩니다.

	const arr = [
    {id: 22, name: 'kiwi' },
    {id: 11, name: 'apple' },
    {id: 2, name: 'melon' },
    {id: 9, name: 'grape' }
  ];

arr.sort((a, b) => a.id - b.id);
console.log(arr); // [
  { id: 2, name: 'melon' },
  { id: 9, name: 'grape' },
  { id: 11, name: 'apple' },
  { id: 22, name: 'kiwi' }
]

cf) 내림차순은 b.id - a.id 를 이용한다.
profile
안녕하세요

0개의 댓글