Riješeno: kako nasumično sortirati niz javascripta

Glavni problem s nasumičnim sortiranjem niza je taj što može oduzimati mnogo vremena.

 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>



Nizovi i funkcije sortiranja

Niz je skup podataka kojima se može pristupiti pomoću indeksnog broja. Prvi element u nizu je na indeksu 0, drugi element je na indeksu 1, i tako dalje. Da biste pristupili trećem elementu u nizu, upotrijebili biste indeksni broj 3.

Za sortiranje niza, možete koristiti funkciju sortiranja. Funkcija sortiranja uzima dva argumenta: polje i funkciju usporedbe. Funkcija usporedbe uspoređuje dva elementa u nizu i vraća Booleovu vrijednost. Ako funkcija usporedbe vrati true, tada će element na poziciji x u nizu biti postavljen prije elementa na poziciji y u nizu. Ako funkcija usporedbe vrati false, tada će element na poziciji x u nizu biti smješten nakon elementa na položaju y u nizu.

Evo primjera kako koristiti funkciju sortiranja za sortiranje niza brojeva:

promjenljivi brojevi = [1, 2, 3, 4]; // Sortiraj brojeve pomoću funkcije usporedbe var sortedNumbers = numbers .sort(function(a, b) { return a – b; }); // Ispis konzole sortiranih brojeva .log(sortedNumbers);

Slučajni nizovi

Niz je skup podataka kojima se može pristupiti pomoću indeksnog broja. U JavaScriptu se nizovi stvaraju pomoću konstruktora polja.

Da biste stvorili prazan niz, upotrijebite konstruktor Array():

var myArray = new Array();

Za izradu polja s pet elemenata upotrijebite sljedeći kod:

var myArray = new Array(5);

myArray[0] = “JavaScript”; myArray[1] = “Nizovi”; myArray[2] = “Funkcije”; myArray[3] = “Nizovi”; myArray[4] = “Booleovi”; myArray[5] = “Brojevi”;

Povezani postovi:

Ostavite komentar