[javascript] sort 오름차순, 내림차순

sangyong park·2023년 2월 7일
0
post-thumbnail

1.문자열 배열 정렬

문자열 배열은 sort() 호출 시, 알파벳 순서로 정렬된다.

<script>
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];

arr.sort();
console.log(arr); // [ 'apple', 'banana', 'grape', 'kiwi', 'melon' ]
</script>

내림차순 정렬

내림차순 정렬에는 if문을 사용하여 문자열 두개를 비교하여 내림차순으로 만드는 방법도 있지만
간단하게 reverse()를 사용하여 구현이 가능하다.

<script>
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];

arr.sort();
arr.reverse()
console.log(arr); // [ 'melon', 'kiwi', 'grape', 'banana', 'apple' ]
</script>

2. 숫자 배열 정렬

숫자 배열에 sort() 수행 시, 숫자를 문자열로 변환하여 정렬을 하기때문에 기존의 문자열 정렬 방식처럼 사용하면 안된다.

sort()에 두개의 숫자를 비교하는 함수를 구현하여 인자로 전달해야 한다.
아래와 같이 a - b의 값을 리턴하도록 구현하면 오름차순이 된다.
a가 크면 양수, b가 크면 음수, 같으면 0이 리턴되기 때문에 이렇게 간단히 구현할 수 있다.

<script>
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 ]
</script>

화살표 함수를 사용하여 더 간단하게 나타내기

<script>
const arr = [22, 11, 2, 9, 1, 5];

arr.sort((a,b) => a - b);

console.log(arr); // [ 1, 2, 5, 9, 11, 22 ]
</script>

숫자 배열 내림차순

숫자 배열 내림차순은 오름차순과 반대로 b - a 로 구현이 가능하다.

<script>
const arr = [22, 11, 2, 9, 1, 5];

arr.sort((a, b) => b - a);

console.log(arr); // [ 22, 11, 9, 5, 2, 1 ]

</script>
profile
Dreams don't run away It is always myself who runs away.

0개의 댓글