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(() => 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”;