Sobes.tech
Junior

Kā mainīt elementu kārtību masīvā?

sobes.tech AI

Atbilde no AI

Lai mainītu elementu kārtību masīvā, jūs varat izmantot vairākus pieejas:

  1. reverse(): Maina masīvu vietā, apgriežot elementu kārtību.

    const arr = [1, 2, 3, 4, 5];
    arr.reverse();
    // arr tagad ir [5, 4, 3, 2, 1]
    
  2. sort(): Sakārto masīvu vietā. Pēc noklusējuma tas sakārto kā virknes. Skaitliskai kārtošanai ir nepieciešams nodot salīdzināšanas funkciju.

    const arr = [3, 1, 4, 1, 5, 9, 2, 6];
    arr.sort(); // Noklusējuma kārtošana (kā virknes)
    // arr tagad ir [1, 1, 2, 3, 4, 5, 6, 9]
    
    const arrNum = [3, 1, 4, 1, 5, 9, 2, 6];
    arrNum.sort((a, b) => a - b); // Augošā secībā
    // arrNum tagad ir [1, 1, 2, 3, 4, 5, 6, 9]
    
    arrNum.sort((a, b) => b - a); // Dilstošā secībā
    // arrNum tagad ir [9, 6, 5, 4, 3, 2, 1, 1]
    
  3. Izveidot jaunu masīvu ar mainītu kārtību: Ja vēlaties izvairīties no sākotnējā masīva izmaiņām, varat izmantot metožu kombināciju.

    • Kopija ar reverse():

      const arr = [1, 2, 3, 4, 5];
      const reversedArr = [...arr].reverse(); // Izveido kopiju un apgriež
      // reversedArr tagad ir [5, 4, 3, 2, 1]
      // arr paliek nemainīgs [1, 2, 3, 4, 5]
      
    • Kopija ar sort():

      const arr = [3, 1, 4, 1, 5];
      const sortedArr = [...arr].sort((a, b) => a - b); // Izveido kopiju un sakārto
      // sortedArr tagad ir [1, 1, 3, 4, 5]
      // arr paliek nemainīgs [3, 1, 4, 1, 5]
      
    • Īpašs kārtības veids (ļoti sarežģīts gadījums): Ja nepieciešams specifisks kārtības veids, kas nav vienkāršas kārtošanas vai apgriešanas rezultāts, iespējams, būs jāveic elementu manuāla pārkārtošana vai jāizmanto sarežģītāki algoritmi. Piemēram, maisīšana (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]]; // Elementu apmaiņa (strukturēšana)
      }
      // shuffledArr tagad ir nejauši sajaukts
      // arr paliek nemainīgs [1, 2, 3, 4, 5]
      

Izvēlētais metode ir atkarīgs no vēlamā rezultāta (atpakaļejošā kārta, kārtošana, nejauša kārta) un no tā, vai sākotnējais masīvs ir jāmaina vai jāizveido jauns.