JS | Sort()

mogooee·2021년 12월 13일
0

원배열의 문자열을 정렬하는 배열의 메서드

문자열 정렬

문자열 오름차순 정렬

맨 앞글자의 문자열을 A-Z, a-z의 순서로 정렬한다.

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// ["Dec", "Feb", "Jan", "March"]

문자열 내림차순 정렬 (프로그래머스 알고리즘 문제)

배열 메서드를 사용하기 위해 문자열 메서드 split을 이용하여 문자열을 배열로 변환한다.
sort메서드로 정렬 후, reverse 메서드로 모든 배열의 인덱스를 거꾸로 뒤집는다. join메서드를 이용하여 배열을 다시 문자열로 변환한다.

function solution(s) {
  var answer = "";
  answer = s.split("").sort().reverse().join("");
  return answer; // gfedcbZ
}

solution("Zbcdefg");

숫자 정렬

유니코드 순서대로 정렬

숫자 역시 유니코드의 순서에 맞춰 정렬하므로 맨 앞의 숫자가 무엇이냐에 따라 정렬 순서가 달라진다. 예를 들어 유니코드 순서에 맞춰 정렬한 숫자는 123, 21, 333이 될 것이다.

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// [1, 100000, 21, 30, 4]

숫자 크기대로 정렬

  • 오름차순 정렬

    숫자 크기대로 정렬하고 싶다면 콜백함수를 이용하여 return되는 값으로 요소들의 인덱스 순서를 변화시켜주면 된다. 아래는 오름차순의 예이다.
  1. return값 > 0
    : a가 b보다 앞(작은인덱스)에 위치함

  2. return값 = 0
    : a와 b의 위치를 변경하지 않음

  3. return값 < 0
    : b가 a보다 앞(작은인덱스)에 위치함

array1.sort((a,b)=>{return a-b;})
console.log(array1)
// [1, 4, 21, 30, 100000]
  • 내림차순 정렬

    내림차순 정렬은 두번째 값인 b가 a보다 크면 앞에 위치해야 한다. 오름차순과 정반대의 조건이므로 b-a를 return값으로 설정한다.
const array1 = [1, 30, 4, 21, 100000];
array1.sort((a,b)=>{return b-a;})
// [100000, 30, 21, 4, 1]
profile
개발의 숲

0개의 댓글

관련 채용 정보