Çözüldü: bir javascript dizisinin rastgele sıralanması

Bir diziyi rasgele sıralamanın ana sorunu, bunun çok zaman alıcı olabilmesidir.

 arrays sorting random

I have an array of objects that I need to randomly sort.  The objects have a property called "order" that is a number.  I need to sort the array so that the order property is in random order, but the other properties of each object stay in place.  How can I do this?


A:

You can use <code>sort</code> with a function that returns a random value:


<code>const arr = [
  { id: 1, name: 'foo' },
  { id: 2, name: 'bar' },
];
arr.sort(() =&gt; Math.random() - 0.5);
console.log(arr);</code>



Diziler ve sıralama işlevleri

Dizi, bir dizin numarası kullanılarak erişilebilen bir veri koleksiyonudur. Dizideki ilk eleman 0 indeksinde, ikinci eleman 1 indeksinde vb. Dizideki üçüncü öğeye erişmek için 3 numaralı indeksi kullanırsınız.

Bir diziyi sıralamak için sıralama işlevini kullanabilirsiniz. Sıralama işlevi iki bağımsız değişken alır: bir dizi ve bir karşılaştırma işlevi. Karşılaştırma işlevi, dizideki iki öğeyi karşılaştırır ve bir boole değeri döndürür. Karşılaştırma işlevi true değerini döndürürse, dizide x konumundaki öğe dizide y konumundaki öğeden önce yerleştirilecektir. Karşılaştırma işlevi false döndürürse, dizide x konumundaki öğe dizide y konumundaki öğeden sonra yerleştirilir.

Bir sayı dizisini sıralamak için sıralama işlevinin nasıl kullanılacağına ilişkin bir örnek:

var sayılar = [1, 2, 3, 4]; // Karşılaştırıcı işlevi kullanarak sayıları sıralayın var sortedNumbers = sayılar .sort(function(a, b) { return a – b; }); // sortedNumbers konsolunu yazdır .log(sortedNumbers);

Rastgele Diziler

Dizi, bir dizin numarası kullanılarak erişilebilen bir veri koleksiyonudur. JavaScript'te diziler, Array yapıcısı kullanılarak oluşturulur.

Boş bir dizi oluşturmak için Array() yapıcısını kullanın:

var myArray = new Array();

Beş öğeli bir dizi oluşturmak için aşağıdaki kodu kullanın:

var myArray = new Array(5);

myArray[0] = “JavaScript”; myArray[1] = “Diziler”; myArray[2] = "İşlevler"; myArray[3] = “Dizeler”; myArray[4] = “Booleanlar”; myArray[5] = “Sayılar”;

İlgili Mesajlar:

Leave a Comment