Kuidas muuta elementide järjekorda massiivis?
sobes.tech AI
Vastus AI-lt
Massiivi elementide järjekorra muutmiseks võite kasutada mitmeid lähenemisviise:
-
reverse(): Muudab massiivi kohapeal, pöörates elementide järjekorra ümber.const arr = [1, 2, 3, 4, 5]; arr.reverse(); // arr on nüüd [5, 4, 3, 2, 1] -
sort(): Sorteerib massiivi kohapeal. Vaikimisi sorteerib see stringidena. Numbrilise sortimise jaoks tuleb edastada võrdlusfunktsioon.const arr = [3, 1, 4, 1, 5, 9, 2, 6]; arr.sort(); // Vaikimisi sorteerimine (nagu stringid) // arr on nüüd [1, 1, 2, 3, 4, 5, 6, 9] const arrNum = [3, 1, 4, 1, 5, 9, 2, 6]; arrNum.sort((a, b) => a - b); // Kasvavas järjekorras // arrNum on nüüd [1, 1, 2, 3, 4, 5, 6, 9] arrNum.sort((a, b) => b - a); // Kahanevas järjekorras // arrNum on nüüd [9, 6, 5, 4, 3, 2, 1, 1] -
Uue massiivi loomine muutunud järjekorraga: Kui soovite vältida algse massiivi muutmist, saate kasutada meetodite kombinatsioone.
-
Kopeeri
reverse()-ga:const arr = [1, 2, 3, 4, 5]; const reversedArr = [...arr].reverse(); // Kopeerib ja pöörab // reversedArr on nüüd [5, 4, 3, 2, 1] // arr jääb samaks [1, 2, 3, 4, 5] -
Kopeeri
sort()-ga:const arr = [3, 1, 4, 1, 5]; const sortedArr = [...arr].sort((a, b) => a - b); // Kopeerib ja sorteerib // sortedArr on nüüd [1, 1, 3, 4, 5] // arr jääb samaks [3, 1, 4, 1, 5] -
Spetsiifiline järjekord (väga keeruline juhtum): Kui vaja on spetsiifilist järjekorda, mis ei tulene lihtsast sorteerimisest või pööramisest, võib olla vaja elemente käsitsi ümber paigutada või kasutada keerukamaid algoritme. Näiteks segamine (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]]; // Elementide vahetamine (struktureerimine) } // shuffledArr on nüüd juhuslikult segatud // arr jääb samaks [1, 2, 3, 4, 5]
-
Valik sõltub soovitud tulemusest (vastupidine järjekord, sorteerimine, juhuslik järjekord) ning sellest, kas algne massiiv peab muutuma või mitte.