Kaip pakeisti elementų tvarką masyve?
sobes.tech AI
Atsakymas iš AI
Norint pakeisti elementų tvarką masyve, galite naudoti keletą būdų:
-
reverse(): Keičia masyvą vietoje, apverčiant elementų tvarką.const arr = [1, 2, 3, 4, 5]; arr.reverse(); // arr dabar yra [5, 4, 3, 2, 1] -
sort(): Rikiuoja masyvą vietoje. Pagal numatytuosius nustatymus rikiuoja kaip eilutes. Skaitmeninei rikiavimui reikia perduoti palyginimo funkciją.const arr = [3, 1, 4, 1, 5, 9, 2, 6]; arr.sort(); // Numatytoji rikiuotė (kaip eilutės) // arr dabar yra [1, 1, 2, 3, 4, 5, 6, 9] const arrNum = [3, 1, 4, 1, 5, 9, 2, 6]; arrNum.sort((a, b) => a - b); // Didėjimo tvarka // arrNum dabar yra [1, 1, 2, 3, 4, 5, 6, 9] arrNum.sort((a, b) => b - a); // Mažėjimo tvarka // arrNum dabar yra [9, 6, 5, 4, 3, 2, 1, 1] -
Sukurti naują masyvą su pakeista tvarka: Jei norite išvengti pirminio masyvo keitimo, galite naudoti metodų derinius.
-
Kopija su
reverse():const arr = [1, 2, 3, 4, 5]; const reversedArr = [...arr].reverse(); // Sukuriame kopiją ir apverčiame // reversedArr dabar yra [5, 4, 3, 2, 1] // arr lieka [1, 2, 3, 4, 5] -
Kopija su
sort():const arr = [3, 1, 4, 1, 5]; const sortedArr = [...arr].sort((a, b) => a - b); // Sukuriame kopiją ir rūšiuojame // sortedArr dabar yra [1, 1, 3, 4, 5] // arr lieka [3, 1, 4, 1, 5] -
Specialus tvarkas (labai sudėtingas atvejis): Jei reikalingas specifinis tvarkas, kuris nėra paprasto rūšiavimo ar apvertimo rezultatas, gali tekti rankiniu būdu pertvarkyti elementus arba naudoti sudėtingesnius algoritmus. Pavyzdžiui, maišymas (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]]; // Elementų keitimas (struktūrizavimas) } // shuffledArr dabar yra atsitiktinai sumaišytas // arr lieka [1, 2, 3, 4, 5]
-
Pasirinktas metodas priklauso nuo norimo rezultato (atvirkštinis tvarkas, rūšiavimas, atsitiktinis tvarkas) ir nuo to, ar turi būti pakeistas pirminis masyvas, ar sukurtas naujas.