Riješeno: kako nasumično sortirati niz javascript

Glavni problem sa nasumično sortiranjem niza je taj što može biti dugotrajno.

 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 zbirka podataka kojoj 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, koristili biste indeks broj 3.

Da biste sortirali niz, možete koristiti funkciju sortiranja. Funkcija sortiranja uzima dva argumenta: niz i funkciju poređenja. Funkcija poređenja uspoređuje dva elementa u nizu i vraća logičku vrijednost. Ako funkcija poređenja vrati true, tada će element na poziciji x u nizu biti postavljen prije elementa na poziciji y u nizu. Ako funkcija poređenja vrati false, tada će element na poziciji x u nizu biti postavljen iza elementa na poziciji y u nizu.

Evo primjera kako koristiti funkciju sortiranja za sortiranje niza brojeva:

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

Slučajni nizovi

Niz je zbirka podataka kojoj se može pristupiti pomoću indeksnog broja. U JavaScriptu, nizovi se kreiraju pomoću konstruktora niza.

Da kreirate prazan niz, koristite konstruktor Array():

var myArray = new Array();

Za kreiranje niza sa pet elemenata koristite sljedeći kod:

var myArray = novi niz(5);

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

Slični postovi:

Ostavite komentar