Sobes.tech
Junior

როგორ შევცვალოთ ელემენტების სია მასივში?

sobes.tech AI

პასუხი AI-სგან

Մասիվի տարրերի կարգը փոխելու համար դուք կարող եք օգտագործել մի քանի մոտեցումներ:

  1. reverse(): Փոխում է զանգվածը տեղում, հակառակ կարգով դասավորելով տարրերը:

    const arr = [1, 2, 3, 4, 5];
    arr.reverse();
    // arr այժմ [5, 4, 3, 2, 1]
    
  2. sort(): Դասավորում է զանգվածը տեղում: Դյուրին դեպքում դասավորում է որպես տողեր: Թվային դասավորության համար անհրաժեշտ է փոխանցել համեմատական ֆունկցիա:

    const arr = [3, 1, 4, 1, 5, 9, 2, 6];
    arr.sort(); // Դյուրին դասավորում (որպես տողեր)
    // arr այժմ [1, 1, 2, 3, 4, 5, 6, 9]
    
    const arrNum = [3, 1, 4, 1, 5, 9, 2, 6];
    arrNum.sort((a, b) => a - b); // Աճման կարգով դասավորում
    // arrNum այժմ [1, 1, 2, 3, 4, 5, 6, 9]
    
    arrNum.sort((a, b) => b - a); // Փոխադարձ դասավորում
    // arrNum այժմ [9, 6, 5, 4, 3, 2, 1, 1]
    
  3. Նոր զանգված ստեղծել փոփոխված կարգով: Եթե ուզում եք խուսափել սկզբնական զանգվածի փոփոխությունից, կարող եք օգտագործել մեթոդների համակցում:

    • Կոպիա reverse()-ով:

      const arr = [1, 2, 3, 4, 5];
      const reversedArr = [...arr].reverse(); // Կատարում ենք կոպիա և հակառակ կարգով դասավորում
      // reversedArr այժմ [5, 4, 3, 2, 1]
      // arr մնում է [1, 2, 3, 4, 5]
      
    • Կոպիա sort()-ով:

      const arr = [3, 1, 4, 1, 5];
      const sortedArr = [...arr].sort((a, b) => a - b); // Կատարում ենք կոպիա և դասավորում
      // sortedArr այժմ [1, 1, 3, 4, 5]
      // arr մնում է [3, 1, 4, 1, 5]
      
    • Հատուկ կարգ (ավելի բարդ դեպք): Եթե անհրաժեշտ է հատուկ կարգ, որը չի հանդիսանում պարզ դասավորության կամ հակառակ կարգի արդյունք, հնարավոր է, որ անհրաժեշտ լինի ձեռքով վերակազմել տարրերը կամ օգտագործել ավելի բարդ ալգորիթմներ։ Օրինակ, շփում (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]]; // Տարածում տարրերը (դեստրուկտուրացում)
      }
      // shuffledArr այժմ պատահականորեն շփված է
      // arr մնում է [1, 2, 3, 4, 5]
      

Ընտրությունը կախված է ցանկալի արդյունքից (հակառակ կարգ, դասավորում, պատահական կարգ) և նրանից, արդյոք պետք է փոփոխվի սկզբնական զանգվածը կամ ոչ։