Sobes.tech
Junior

Bir dizideki öğelerin sırasını nasıl değiştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir dizideki öğelerin sırasını değiştirmek için birkaç yaklaşım kullanılabilir:

  1. reverse(): Diziyi yerinde değiştirir, öğelerin sırasını tersine çevirir.

    const arr = [1, 2, 3, 4, 5];
    arr.reverse();
    // arr şimdi [5, 4, 3, 2, 1]
    
  2. sort(): Diziyi yerinde sıralar. Varsayılan olarak, diziyi dizgi olarak sıralar. Sayısal sıralama için karşılaştırma fonksiyonu geçirilmelidir.

    const arr = [3, 1, 4, 1, 5, 9, 2, 6];
    arr.sort(); // Varsayılan sıralama (dizgi olarak)
    // arr şimdi [1, 1, 2, 3, 4, 5, 6, 9]
    
    const arrNum = [3, 1, 4, 1, 5, 9, 2, 6];
    arrNum.sort((a, b) => a - b); // Artan sıralama
    // arrNum şimdi [1, 1, 2, 3, 4, 5, 6, 9]
    
    arrNum.sort((a, b) => b - a); // Azalan sıralama
    // arrNum şimdi [9, 6, 5, 4, 3, 2, 1, 1]
    
  3. Yeni bir dizi oluşturmak ve sıralamak veya ters çevirmek: Orijinal diziyi değiştirmeden, birkaç yöntem kombinasyonu kullanılabilir.

    • reverse() ile kopya:

      const arr = [1, 2, 3, 4, 5];
      const reversedArr = [...arr].reverse(); // Kopya oluştur ve ters çevir
      // reversedArr şimdi [5, 4, 3, 2, 1]
      // arr değişmeden kalır [1, 2, 3, 4, 5]
      
    • sort() ile kopya:

      const arr = [3, 1, 4, 1, 5];
      const sortedArr = [...arr].sort((a, b) => a - b); // Kopya oluştur ve sıralama
      // sortedArr şimdi [1, 1, 3, 4, 5]
      // arr değişmeden kalır [3, 1, 4, 1, 5]
      
    • İstediğiniz sıralama (daha karmaşık durum): Belirli bir sıralama gerekiyorsa, basit sıralama veya ters çevirme sonucu olmayan, öğeleri manuel olarak yeniden düzenlemek veya daha karmaşık algoritmalar kullanmak gerekebilir. Örneğin, karıştırma (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]]; // Öğeleri takas et (destructuring)
      }
      // shuffledArr şimdi rastgele karıştırılmıştır
      // arr değişmeden kalır [1, 2, 3, 4, 5]
      

Seçilen yöntem, istenen sonuca (ters sıralama, sıralama, rastgele sıralama) ve orijinal dizinin değiştirilip değiştirilmemesine bağlıdır.