Post

(1) 매개변수를 쓰지 않을 때

const numbers = [45, 7, 535, 364, 314];
console.log(numbers.sort()); // [ 314, 364, 45, 535, 7 ]

이 경우에는 배열 안의 숫자를 문자열로 인식하기에, 제일 앞자리 숫자만 따져 순서를 매긴다.

 

 

 

(2) 매개변수 활용

const numbers = [45, 7, 535, 364, 314];
console.log(
  numbers.sort(function (a, b) {
    if (a > b) {
      return 1;
    } else if (a < b) {
      return -1;
    } else {
      return 0;
    }
  })
); // [ 7, 45, 314, 364, 535 ]

1번째 요소(a)와 2번째 요소(b)를 비교하여

1번째가 클 경우에는 1을 반환(a를 b 뒤에 둔다. 순서 바꿈)

2번째가 클 경우에는 -1을 반환(a를 b 앞에 둔다. 순서 유지)

같을 경우에는 순서를 유지한다.

 

const numbers = [45, 7, 535, 364, 314];
console.log(
  numbers.sort(function (a, b) {
    if (a > b) {
      return 0;
    } else if (a < b) {
      return 0;
    } else {
      return 0;
    }
  })
); // [ 45, 7, 535, 364, 314 ]

0이 반환될 경우에도 순서는 유지된다.

 

 

 

(3) 간략화

const numbers = [45, 7, 535, 364, 314];
console.log(
  numbers.sort(function (a, b) {
    return a - b;
  })
);
// [ 7, 45, 314, 364, 535 ]

 

'JavaScript related' 카테고리의 다른 글

JavaScript deep & shallow copy  (0) 2023.01.25
JavaScript Array.fill.map  (0) 2023.01.25
JavaScript Append Items  (0) 2023.01.23
JavaScript Date  (0) 2023.01.23
JavaScript Arrow Function  (0) 2023.01.23
▲ top