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]
      

Интихоби усул вобаста ба натиҷаи лозим (тартиби баръакс, сортинг, тартиби тасодуфӣ) ва он, ки оё массиви аслӣ бояд тағир ёбад ё не, мебошад.