Metoda sortowania tablicy JavaScript().

The sort()> metoda w JavaScript porządkuje elementy tablicy i zwraca posortowaną tablicę. Domyślnie sortuje elementy alfabetycznie, traktując je jak ciągi znaków.

Jednak w przypadku sortowania numerycznego można udostępnić niestandardową funkcję porównania. Funkcja ta dyktuje kryteria sortowania, umożliwiając precyzyjną kontrolę nad procesem sortowania. `sort()` zwiększa wydajność i funkcjonalność aplikacji JavaScript, umożliwiając organizowanie elementów tablicy zgodnie z określonymi wymaganiami w sposób profesjonalny i formalny.

Składnia

arr.sort(compareFunction); 

Parametry

  • array> : Tablica, która ma zostać posortowana.
  • compareFunction> (Opcjonalnie): Funkcja określająca porządek sortowania. W przypadku pominięcia elementy tablicy są sortowane na podstawie ich punktów kodowych Unicode.

Wartość zwracana

Ta metoda zwraca odwołanie do posortowanej oryginalnej tablicy.

Przykłady:

Przykład 1: Sortowanie tablicy ciągów

Ten przykład pokazuje użycie funkcji sort().

JavaScript
// 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(); 

Wyjście
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Wyjaśnienie:

The sort()> metoda przestawia elementy arr> array alfabetycznie, tworząc wynik ['Geeks', 'Geeks', 'for']> .

Przykład 2: Sortowanie tablicy liczb bez funkcji porównania

Tutaj sortować() Metoda porządkuje elementy tablicy w kolejności rosnącej.

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

Wyjście
[ 1, 2, 4, 5, 8 ] 

Wyjaśnienie:

The sort()> metoda jest wywoływana na tablicy liczb [2, 5, 8, 1, 4]> . The sort()> metoda posortuje elementy alfabetycznie, ponieważ nie jest dostępna funkcja porównania. Dlatego wynik będzie [1, 2, 4, 5, 8]> , który jest posortowany alfabetycznie na podstawie ciągów reprezentujących liczby.

Przykład 3: Sortowanie wartości liczbowej bez funkcji porównania

Tutaj sortujemy wartość liczbową bez funkcji porównania

JavaScript
let numbers = [20, 5.2, -120, 100, 30, 0] console.log(numbers.sort()) 

Wyjście
[ -120, 0, 100, 20, 30, 5.2 ] 

Wyjaśnienie:

Kiedy używasz sort()> bez funkcji porównania, JavaScript domyślnie sortuje elementy tablicy jako ciągi znaków, co nie zawsze może dawać oczekiwane wyniki w przypadku tablic numerycznych. Rozłóżmy proces sortowania:

  • JavaScript konwertuje każdy element tablicy na ciąg znaków.
  • Następnie porównuje jednostki kodu UTF-16 każdego znaku w ciągu i sortuje je na podstawie wartości punktu kodowego Unicode.

Oto, co dzieje się z Twoją tablicą:

  • Liczby są konwertowane na ciągi znaków: ['20', '5.2', '-120', '100', '30', '0']> .
  • Posortowane alfabetycznie, -120> jest na pierwszym miejscu, ponieważ -> ma niższą wartość punktową kodu Unicode niż cyfry ( 0> Do 9> ). Potem przychodzi 0> , śledzony przez 100> , 20> , 30> , I 5.2> .

Przykład 4: Sortowanie wartości liczbowych za pomocą funkcji porównania

Nieoczekiwany błąd, który wystąpił w powyższym przykładzie, możemy rozwiązać, używając metody sort() dla liczb, korzystając z poniższej funkcji porównania.

JavaScript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 zostanie umieszczone przed 20, 20 - (-120) = +ve => -120 zostanie umieszczone przed 20, 20 - (100) = -ve => 100 zostanie umieszczone po 20, 20 - (30) = - ve => 30 zostanie umieszczone po 20, 20 - (0) = +ve => 0 zostanie umieszczone przed 20. Podobnie dla każdego elementu sprawdzamy i umieszczamy je odpowiednio w iteracjach. */ funkcja porównaj(a, b) { zwróć a - b; } konsola.log(liczby.sort(porównaj)); 

Wyjście
[ -120, 0, 5.2, 20, 30, 100 ] 

Wyjaśnienie:

  • The compare> funkcja odejmuje b> z a> . Jeśli wynik będzie negatywny, a> przychodzi wcześniej b> w posortowanej tablicy; jeśli pozytywne, b> przychodzi wcześniej a> ; jeśli zero, ich względna kolejność pozostaje niezmieniona.
  • Udostępniając tę ​​niestandardową funkcję porównania do sort()> metoda JavaScript sortuje tablicę numbers> na podstawie wartości liczbowych jego elementów.

Proszę przejść przez to Jak sortować tablicę numeryczną za pomocą JavaScript? , aby dowiedzieć się, jak działa funkcja sortowania tablicy JavaScript

Mamy pełną listę metod Javascript Array. Aby je sprawdzić, przejrzyj tę instrukcję Tablica JavaScript Pełne odniesienie artykuł.

Obsługiwane przeglądarki:

  • GoogleChrome
  • Krawędź
  • Internet Explorera
  • Firefoksa
  • Opera
  • Safari