Kako promeniti redosled elemenata u nizu?
sobes.tech АИ
Одговор од АИ
Za promenu reda elemenata u nizu možete koristiti nekoliko pristupa:
-
reverse(): Menja niz na mestu, preokrećući redosled elemenata.const arr = [1, 2, 3, 4, 5]; arr.reverse(); // arr sada je [5, 4, 3, 2, 1] -
sort(): Sortira niz na mestu. Podrazumevano sortira kao stringove. Za numeričku sortu potrebno je proslediti funkciju poređenja.const arr = [3, 1, 4, 1, 5, 9, 2, 6]; arr.sort(); // Podrazumevano sortiranje (kao stringovi) // arr sada je [1, 1, 2, 3, 4, 5, 6, 9] const arrNum = [3, 1, 4, 1, 5, 9, 2, 6]; arrNum.sort((a, b) => a - b); // Sortiranje uzlazno // arrNum sada je [1, 1, 2, 3, 4, 5, 6, 9] arrNum.sort((a, b) => b - a); // Sortiranje silazno // arrNum sada je [9, 6, 5, 4, 3, 2, 1, 1] -
Kreiranje novog niza sa promenjenim redom: Ako želite da izbegnete promenu originalnog niza, možete koristiti kombinaciju metoda.
-
Kopija sa
reverse():const arr = [1, 2, 3, 4, 5]; const reversedArr = [...arr].reverse(); // Kreiramo kopiju i preokrećemo je // reversedArr sada je [5, 4, 3, 2, 1] // arr ostaje [1, 2, 3, 4, 5] -
Kopija sa
sort():const arr = [3, 1, 4, 1, 5]; const sortedArr = [...arr].sort((a, b) => a - b); // Kreiramo kopiju i sortiramo je // sortedArr sada je [1, 1, 3, 4, 5] // arr ostaje [3, 1, 4, 1, 5] -
Slučajni red (složeniji slučaj): Ako je potreban specifičan red koji nije rezultat jednostavnog sortiranja ili preokreta, možda će biti potrebno ručno preurediti elemente ili koristiti složenije algoritme. Na primer, mešanje (shuffle):
const arr = [1, 2, 3, 4, 5]; const shuffledArr = [...arr]; for (let i = shuffledArr.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [shuffledArr[i], shuffledArr[j]] = [shuffledArr[j], shuffledArr[i]]; // Zamena elemenata (destrukturiranje) } // shuffledArr sada je nasumično pomešan // arr ostaje [1, 2, 3, 4, 5]
-
Izbor metode zavisi od željenog rezultata (obrnuti red, sortiranje, slučajni red) i od toga da li treba da bude izmenjen originalni niz ili kreiran novi.