Sobes.tech
Junior

Ako zmeniť poradie prvkov v poli?

sobes.tech AI

Odpoveď od AI

Na zmenu poradia prvkov v polju lahko uporabite več pristopov:

  1. reverse(): Spremeni polje na mestu, obrnjenega vrstnega reda elementov.

    const arr = [1, 2, 3, 4, 5];
    arr.reverse();
    // arr je zdaj [5, 4, 3, 2, 1]
    
  2. sort(): Uredi polje na mestu. Privzeto ga razvrsti kot nize. Za številčno razvrstitev je treba predati funkcijo za primerjavo.

    const arr = [3, 1, 4, 1, 5, 9, 2, 6];
    arr.sort(); // Privzeta razvrstitev (kot nizi)
    // arr je zdaj [1, 1, 2, 3, 4, 5, 6, 9]
    
    const arrNum = [3, 1, 4, 1, 5, 9, 2, 6];
    arrNum.sort((a, b) => a - b); // Razvrstitev po naraščajočem vrstnem redu
    // arrNum je zdaj [1, 1, 2, 3, 4, 5, 6, 9]
    
    arrNum.sort((a, b) => b - a); // Razvrstitev po padajočem vrstnem redu
    // arrNum je zdaj [9, 6, 5, 4, 3, 2, 1, 1]
    
  3. Ustvarjanje novega polja z zamenjanim vrstnim redom: Če želite preprečiti spremembo izvirnega polja, lahko uporabite kombinacijo metod.

    • Kopija z reverse():

      const arr = [1, 2, 3, 4, 5];
      const reversedArr = [...arr].reverse(); // Ustvarimo kopijo in jo obrnemo
      // reversedArr je zdaj [5, 4, 3, 2, 1]
      // arr ostaja [1, 2, 3, 4, 5]
      
    • Kopija z sort():

      const arr = [3, 1, 4, 1, 5];
      const sortedArr = [...arr].sort((a, b) => a - b); // Ustvarimo kopijo in jo razvrstimo
      // sortedArr je zdaj [1, 1, 3, 4, 5]
      // arr ostaja [3, 1, 4, 1, 5]
      
    • Naključen vrstni red (bolj zapleten primer): Če je potreben specifičen vrstni red, ki ni rezultat preprostega razvrščanja ali obrnjenja, je morda treba ročno preurediti elemente ali uporabiti bolj zapletene 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]]; // Zamenjava elementov (destrukturiranje)
      }
      // shuffledArr je zdaj naključno premešan
      // arr ostaja [1, 2, 3, 4, 5]
      

Izbira metode je odvisna od želenega rezultata (obrnjen vrstni red, razvrstitev, naključni vrstni red) in od tega, ali naj bo izvirni niz spremenjen ali ustvarjen nov.