Junior
Ako by ste zoradili pole čísel?
sobes.tech AI
Odpoveď od AI
// Uporaba metode sort() s funkcijo primerjave
const numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b); // Naraščajoče razvrščanje
// Za padajoče razvrščanje:
// numbers.sort((a, b) => b - a);
Metoda sort() v JavaScriptu razvrsti elemente niza na mestu. Privzeto pretvori elemente v nize in jih razvrsti leksikografsko. Za pravilno razvrščanje številk je potrebno podati funkcijo primerjave.
Funkcija primerjave sprejme dva argumenta, a in b.
- Če funkcija vrne negativno število, bo
aprišel predb. - Če vrne pozitivno število, bo
bprišel preda. - Če vrne 0, vrstni red elementov ostane nespremenjen.
Za razvrščanje številk v naraščajočem vrstnem redu se uporablja (a, b) => a - b. Če je a manjši od b, je rezultat negativen in a pride prej.
Za razvrščanje v padajočem vrstnem redu se uporablja (a, b) => b - a. Če je b manjši od a, je rezultat pozitiven in b pride prej.
Druge metode (redkejše za preproste številčne nize, a uporabne):
-
Metoda
localeCompare()za nize s številkami:// Ni priporočljivo za čiste številke, vendar se lahko uporablja // če so številke predstavljene kot nizi in je treba upoštevati lokalne nastavitve. const stringNumbers = ["10", "2", "1"]; stringNumbers.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })); // Razporedi kot [ "1", "2", "10" ] -
Ustvarjanje kopije niza pred razvrščanjem:
// Če želite ohraniti izvirni niz const originalNumbers = [4, 2, 5, 1, 3]; const sortedNumbers = [...originalNumbers].sort((a, b) => a - b); // ali // const sortedNumbers = originalNumbers.slice().sort((a, b) => a - b);