Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

숫자 및 알파벳 요소의 배열 정렬(자연 정렬) JavaScript

<시간/>

일부 숫자와 일부 문자열을 포함하는 배열이 있습니다. 숫자가 정렬되어 모든 문자열 앞에 배치되고 문자열이 알파벳순으로 정렬되도록 배열을 정렬해야 합니다.

예를 들어 -

이 배열은 정렬된 후

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];

다음과 같아야 합니다 -

[1, 6, 7, 9, 47, 'afv', 'bdf', 'fdf', 'svd']

따라서 이에 대한 코드를 작성해 보겠습니다. -

예시

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];
const sorter = (a, b) => {
   if(typeof a === 'number' && typeof b === 'number'){
      return a - b;
   }else if(typeof a === 'number' && typeof b !== 'number'){
      return -1;
   }else if(typeof a !== 'number' && typeof b === 'number'){
      return 1;
   }else{
      return a > b ? 1 : -1;
   }
}
arr.sort(sorter);
console.log(arr);

출력

콘솔의 출력은 다음과 같습니다. -

[
   1, 6, 7,
   9, 47, 'afv',
   'bdf', 'fdf', 'svd'
]

코드 이해하기 -

이 코드의 주요 부분은 분류기 함수이며 콜백 함수는 배열의 요소인 두 개의 인수를 수신한다는 것을 알고 있습니다.

이제 네 가지 가능성이 있습니다 -

  • 와 b는 모두 숫자입니다 → 이 경우 더 작은 숫자를 더 큰 숫자 앞에 둡니다.

  • a는 숫자이지만 b는 문자열입니다. → 이 경우 질문에서 묻는 문자열(b) 앞에 숫자(a)를 배치합니다.

  • 는 문자열이지만 b는 숫자입니다 → 이 경우 우리는 b 앞에

  • 와 b는 모두 문자열입니다. → 알파벳순으로 더 작은 문자열을 확인합니다. 즉, 앞에 오고 앞에 둡니다.