Sortowanie w JavaScript | Wyjaśnione

Sortowanie w JavaScript | Wyjaśnione
JavaScript ma ogromną liczbę metod i funkcji do wykonania niektórych zadań. Te metody pomagają podczas sortowania tablicy. Sortowanie oznacza ułożenie zestawu wartości w określonej kolejności, może to być kolejność rosnąca lub malejąca. Ponieważ tablice są integralną częścią programowania, sortowanie ich jest ważnym i kluczowym zadaniem. Istnieje wiele trywialnych algorytmów do sortowania tablic, ale dlaczego ciężko pracują, gdy JavaScript jest wyposażony w predefiniowane metody sortowania.

Przeżyjemy sortowanie tablicy z wartościami ciągu i wartości liczbowymi za pomocą wbudowanych funkcji JavaScript.

.Metoda sort ()

.sortować() Metoda służy do sortowania tablicy. Kolejność posortowanej tablicy jest alfabetycznie rosnąca. Działa najlepiej w przypadku wartości ciągów, ale daje nieprawidłowe wyniki, jeśli chodzi o wartości liczbowe. Teraz pojawia się pytanie, dlaczego .Metoda sort () nie działa dla wartości numerycznych.

Wiedzieć, dlaczego .sort () metoda działa na ciągi, ale nie dla wartości numerycznych, najpierw musimy zrozumieć, w jaki sposób .Sort () Metoda działa.

W jaki sposób .sort () metoda pracy

.sortować() Metoda działa poprzez porównanie pierwszego znaku łańcucha z pierwszym znakiem z następnej wartości. Jeśli postacie są takie same, to sprawdzi drugie zarówno struny i umieści najpierw mniejszy. Mniejszy jest na podstawie porządku alfabetycznego, jak w powyższym przykładzie „C" jest mniejszy od "F".

Więc kiedy to mijamy „.sortować()„Metoda dwóch wartości numerycznych, takich jak„ 200 ”i„ 65 ”. Ta funkcja porównuje pierwsze znaki („2” z „200” i „6” z „65”) i zwraca „65” jako większą liczbę. Jednak w tym samouczku przejdziemy również przez przykład, w którym sortujemy liczby za pomocą .sortować() metoda. Zacznijmy od omówienia i zrozumienia składni .sortować() metoda.

Składnia

Składnia .Metoda sort () jest dość podstawowa. To jest:

szyk.sortować()

Wartość zwracana: Posortowana tablica.

Na przykład weźmy tablicę z różnymi elementami w niej:

array = [„stół”, „krzesło”, „szkło”, „mysz”, „laptop”, „fan”, „samochód”];

Aby to sortować i wyświetlić wyjście, którego użyjemy .Sort () metoda w konsoli.Metoda log (), tak jak:

konsola.Log (tablica.sortować());

Pełny fragment kodu stałby się:

array = [„stół”, „krzesło”, „szkło”, „mysz”, „laptop”, „fan”, „samochód”];
konsola.Log (tablica.sortować());

Uruchom program, aby obserwować dane wyjściowe:

.Funkcja odwrotna ()

.Funkcja odwrotna () nie sortuj tablicy w żadnej kolejności. Jednak odwraca pozycjonowanie elementów wewnątrz tablicy. Co oznacza, że ​​ostatni element tablicy staje się pierwszym elementem. Składnia jest jak:

szyk.odwracać()

Jeśli weźmiemy tablicę z powyższego przykładu i spróbujemy odwrócić ją za pomocą .Metoda odwrotna (), wówczas fragment kodu byłby coś takiego.

array = [„stół”, „krzesło”, „szkło”, „mysz”, „laptop”, „fan”, „samochód”];
konsola.Log (tablica.odwracać());

Wyjście jest jak:

Jak widać, elementy tablicy są teraz w odwrotnej kolejności. Ale jak faktycznie sortujemy tablicę w kolejności malejącej?

Jak sortować wartości tablicy w kolejności malejącej?

Cóż, musimy użyć kombinacji .sortować() i .odwracać() metoda. Najpierw sortujemy tablicę, a następnie używamy .odwracać() metoda sortowania tablicy w kolejności malejącej.

To brzmi trochę myląco, więc spróbujmy zaobserwować przykład. W tym przykładzie weź tablicę z powyższych przykładów.

array = [„stół”, „krzesło”, „szkło”, „mysz”, „laptop”, „fan”, „samochód”];

Teraz, gdy mamy tablicę w całkowicie losowej kolejności. Pierwszym krokiem jest to, aby to sortować, więc zróbmy to: używając

szyk.sortować()

Teraz, gdy tablica jest sortowana, musimy ją odwrócić za pomocą następującego wiersza:

szyk.odwracać();

Ostatnim krokiem jest obserwowanie wyjścia i zrobienie tego, aby wyświetlić tablicę za pomocą konsola.dziennik() metoda taka:

konsola.log (tablica);

Kompletny fragment kodu jest jak

array = [„stół”, „krzesło”, „szkło”, „mysz”, „laptop”, „fan”, „samochód”];
szyk.sortować();
szyk.odwracać();
konsola.log (tablica);

Wyjście jest jak:

To jest to, czyli nasza tablica posortowana w malejącej kolejności alfabetycznej. Teraz zobaczmy, jak pracować z wartościami liczbowymi.

Jak sortować wartości liczbowe za pomocą .Metoda sort ()

Jak już wspomnieliśmy powyżej, .sortować() Metoda nie daje prawidłowych wyników, jeśli chodzi o sortowanie wartości liczbowych, a to dlatego, że .sortować() Metoda działa poprzez porównanie ciągów, uważa wartości liczbowe za ciągi, a następnie je porównuje.

Zacznijmy od utworzenia szeregu wartości liczbowych. Tak.

NumberArray = [2,3,4,666,100,25,33]

Teraz obserwujmy wyjście, uruchamiając. sortować() Metoda w tej tablicy wewnątrz konsola.dziennik() funkcjonować

konsola.log (numerArray.sortować());

Wyjście jest jak:

Jak widać, wynik jest poza znakiem. Dlaczego to jest takie?. Cóż, już wyjaśniliśmy, jak .Sort () Metoda działa. To, co się dzieje. Ale kiedy porównasz pierwsze postacie, „1” jest mniejszy niż „3”, stąd 100 jest umieszczone przed 33.

Więc naprawimy ten problem? Cóż, robimy to za pomocą funkcji Porównaj w funkcji sortowania. Funkcja porównania jest:

funkcja (A, B)

zwrot a-b

Bierzemy „NumberArray”Z powyższego przykładu i zastosuj tę funkcję porównania, aby obserwować wyjście.

numerArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (funkcja (a, b)
zwrócić a - b;
);
konsola.log (numerArray);

Dzięki temu otrzymujemy następujące dane wyjściowe.

Jak widać, w końcu mamy naszą tablicę numerów w kolejności malejącej.

Jak sortować wartości liczbowe w kolejności malejącej?

Teraz, gdy znamy sortowanie tablicy numerycznej w kolejności rosnącej, możemy zacząć próbować sortować to w kolejności malejącej. Podobnie jak próba sortowania ciągów w kolejności malejącej, możemy użyć metody odwrotnej () do odwrócenia tablicy sortowanej numerycznej:

numerArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (funkcja (x, y)
powrót x - y;
);
NumberArray.odwracać();
konsola.log (numerArray);

Wyjście jest jak:

Istnieje jednak inny sposób, a mianowicie zmiana instrukcji powrotu w funkcji porównywania. Zmień stwierdzenie na to:

powrót B-A;

Następnie po prostu drukujemy tablicę za pomocą konsola.dziennik() metoda. Kompletny fragment kodu jest jako:

numerArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (funkcja (x, y)
Powrót y - x;
);
konsola.log (numerArray);

Wyjście będzie:

Jak sortować tablice obiektowe w JavaScript

Wyobraź sobie, że mamy na przykład szereg obiektów, weźmy przedmioty ludzi o ich imieniu i ich roku urodzenia.

Teraz chcemy sortować tę tablicę do roku, w którym się urodzili. Mamy tablicę obiektów ludzi jako:

const People = [
Nazwa: „Albert”, YOB: 1997,
Nazwa: „Dave”, YOB: 2005,
Nazwa: „John”, YOB: 2000
];

Teraz możemy sortować tę tablicę obiektów za pomocą .sort () i porównaj funkcję jako:

ludzie.sort (funkcja (x, y)
powrót x.YOB - x.gbur;
);

Teraz ostatnią rzeczą jest wyświetlenie tej tablicy za pomocą następującego kodu:

konsola.log („ludzie w wieku wieku są jako”);
dla (niech i = 0; i <= people.length; i++)
konsola.Log (ludzie [i].Nazwa + „urodził się w” + ludzie [i].gbur);

Kompletny fragment kodu jest jako:

const People = [
Nazwa: „Albert”, YOB: 1997,
Nazwa: „Dave”, YOB: 2005,
Nazwa: „John”, YOB: 2000,
];
ludzie.sort (funkcja (x, y)
powrót x.yob - y.gbur;
);
konsola.log („ludzie w wieku wieku są jako”);
dla (niech i = 0; i <= people.length; i++)
konsola.Log (ludzie [i].Nazwa + „urodził się w” + ludzie [i].gbur);

Po uruchomieniu pliku otrzymujemy następujące dane wyjściowe:

Jak widzimy, wszystkie obiekty są teraz sortowane na podstawie ich „yob”, które jest rokiem narodzin osoby.
To jest do sortowania w JavaScript.

Wniosek

Sortowanie jest istotną częścią podczas pracy z tablicami. JavaScript jest wyposażony w różne funkcje wbudowane, które pomagają nam w sortowaniu elementów tablicy. Nauczyliśmy się, jak .sortować() Metoda działa w JavaScript, jego składni i wartości zwracania. Ponadto nauczyliśmy się korzystać z kombinacji .sortować() I .odwracać() metoda sortowania tablic w kolejności malejącej. Na koniec dowiedzieliśmy się, jak możemy korzystać .sortować() metoda sortowania wartości liczbowych za pomocą funkcji porównywania.