JavaScript 배열 sort() 메서드

그만큼 sort()> 방법 JavaScript에서는 배열 요소를 제자리에 정렬하고 정렬된 배열을 반환합니다. 기본적으로 요소를 알파벳순으로 정렬하여 문자열로 처리합니다.

그러나 숫자 정렬의 경우 사용자 정의 비교 기능을 제공할 수 있습니다. 이 기능은 정렬 기준을 지정하여 정렬 프로세스를 정밀하게 제어할 수 있습니다. `sort()`는 전문적이고 공식적인 방식으로 특정 요구 사항에 따라 배열 요소를 구성할 수 있도록 하여 JavaScript 애플리케이션의 효율성과 기능을 향상시킵니다.

통사론

arr.sort(compareFunction); 

매개변수

  • array> : 정렬할 배열입니다.
  • compareFunction> (선택사항): 정렬 순서를 정의하는 함수입니다. 생략하면 배열 요소는 문자열 유니코드 코드 포인트를 기준으로 정렬됩니다.

반환 값

이 메서드는 정렬된 원본 배열의 참조를 반환합니다.

예:

예시 1: 문자열 배열 정렬

이 예에서는 sort() 함수의 사용을 보여줍니다.

자바스크립트
// JavaScript to illustrate sort() function function func() {  // Original string  let arr = ['Geeks', 'for', 'Geeks']  console.log(arr);  // Sorting the array  console.log(arr.sort()); } func(); 

산출
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

설명:

그만큼 sort()> 메서드는 요소를 재배열합니다. arr> 알파벳순으로 배열하여 출력을 생성합니다. ['Geeks', 'Geeks', 'for']> .

예시 2: 비교 기능 없이 숫자 배열 정렬

여기서는 종류() 메소드는 배열의 요소를 오름차순으로 정렬합니다.

자바스크립트
// JavaScript to illustrate sort() function function func() {  //Original string  let arr = [2, 5, 8, 1, 4]  //Sorting the array  console.log(arr.sort()); } func(); 

산출
[ 1, 2, 4, 5, 8 ] 

설명:

그만큼 sort()> 메서드는 숫자 배열에서 호출됩니다. [2, 5, 8, 1, 4]> . 그만큼 sort()> 비교 기능이 제공되지 않기 때문에 메소드는 요소를 알파벳순으로 정렬합니다. 따라서 출력은 다음과 같습니다. [1, 2, 4, 5, 8]> , 숫자의 문자열 표현을 기준으로 알파벳순으로 정렬됩니다.

예시 3: 비교 기능 없이 숫자 값 정렬

여기서는 비교 기능 없이 숫자 값을 정렬합니다.

자바스크립트
let numbers = [20, 5.2, -120, 100, 30, 0] console.log(numbers.sort()) 

산출
[ -120, 0, 100, 20, 30, 5.2 ] 

설명:

당신이 사용할 때 sort()> 비교 함수가 없는 메소드를 사용하면 JavaScript는 기본적으로 배열 요소를 문자열로 정렬하므로 숫자 배열에 대해 예상한 결과가 항상 생성되지 않을 수도 있습니다. 정렬 프로세스를 분석해 보겠습니다.

  • JavaScript는 배열의 각 요소를 문자열로 변환합니다.
  • 그런 다음 문자열에 있는 각 문자의 UTF-16 코드 단위를 비교하고 유니코드 코드 포인트 값을 기준으로 정렬합니다.

어레이에서 발생하는 상황은 다음과 같습니다.

  • 숫자는 문자열로 변환됩니다. ['20', '5.2', '-120', '100', '30', '0']> .
  • 알파벳 순으로 정렬하면, -120> 먼저 나오니까 -> 숫자보다 유니코드 코드 포인트 값이 낮습니다( 0> 에게 9> ). 그럼 온다 0> , 이어서 100> , 20> , 30> , 그리고 5.2> .

예시 4: 비교 기능을 사용하여 숫자 값 정렬

다음 비교 함수를 사용하여 숫자에 대한 sort() 메서드를 사용하면 위의 예에서 발생한 예기치 않은 오류를 해결할 수 있습니다.

자바스크립트
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2는 20, 20 - (-120) = +ve => -120은 20 앞에 배치되고, 20 - (100) = -ve => 100은 20, 20 - (30) = - 뒤에 배치됩니다. ve => 30은 20 뒤에 배치되고, 20 - (0) = +ve => 0은 20 앞에 배치됩니다. 마찬가지로 모든 요소에 대해 확인하고 그에 따라 반복 배치합니다. */ 함수 비교(a, b) { return a - b; } console.log(numbers.sort(비교)); 

산출
[ -120, 0, 5.2, 20, 30, 100 ] 

설명:

  • 그만큼 compare> 함수 빼기 b> ~에서 a> . 결과가 부정적일 경우, a> 전에 온다 b> 정렬된 배열에서; 긍정적이라면, b> 전에 온다 a> ; 0인 경우 상대 순서는 변경되지 않습니다.
  • 이 사용자 정의 비교 기능을 제공함으로써 sort()> 메서드, JavaScript가 배열을 정렬합니다. numbers> 해당 요소의 수치 값을 기반으로 합니다.

이 과정을 거쳐주세요 JavaScript를 사용하여 숫자 배열을 정렬하는 방법은 무엇입니까? , 자바스크립트 배열 정렬 기능이 어떻게 작동하는지 알아보세요.

우리는 Javascript Array 메소드의 전체 목록을 가지고 있습니다. 이를 확인하려면 다음을 수행하십시오. 자바스크립트 배열 전체 참조 기사.

지원되는 브라우저:

  • 구글 크롬
  • 가장자리
  • 인터넷 익스플로러
  • 파이어폭스
  • 오페라
  • 원정 여행