Løst: hvordan sortere et array-javascript tilfeldig

Hovedproblemet med tilfeldig sortering av en matrise er at det kan være svært tidkrevende.

 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>



Matriser og sorteringsfunksjoner

En matrise er en samling av data som kan nås ved hjelp av et indeksnummer. Det første elementet i matrisen er på indeks 0, det andre elementet er på indeks 1, og så videre. For å få tilgang til det tredje elementet i matrisen, bruker du indeksnummeret 3.

For å sortere en matrise kan du bruke en sorteringsfunksjon. Sorteringsfunksjonen tar to argumenter: en matrise og en sammenligningsfunksjon. Sammenligningsfunksjonen sammenligner to elementer i matrisen og returnerer en boolsk verdi. Hvis sammenligningsfunksjonen returnerer sann, vil elementet i posisjon x i matrisen plasseres før elementet i posisjon y i matrisen. Hvis sammenligningsfunksjonen returnerer usann, vil elementet i posisjon x i arrayen bli plassert etter elementet i posisjon y i arrayen.

Her er et eksempel på hvordan du bruker en sorteringsfunksjon for å sortere en rekke tall:

var tall = [1, 2, 3, 4]; // Sorter tall ved hjelp av en sammenligningsfunksjon var sortedNumbers = tall .sort(function(a, b) { return a – b; }); // Skriv ut sortedNumbers-konsollen .log(sortedNumbers);

Tilfeldige matriser

En matrise er en samling av data som kan nås ved hjelp av et indeksnummer. I JavaScript opprettes arrays ved å bruke Array-konstruktøren.

For å lage en tom matrise, bruk Array()-konstruktøren:

var myArray = new Array();

For å lage en matrise med fem elementer, bruk følgende kode:

var myArray = new Array(5);

myArray[0] = "JavaScript"; myArray[1] = "Arrays"; myArray[2] = "Funksjoner"; myArray[3] = "Strings"; myArray[4] = “Booleans”; myArray[5] = "Tall";

Relaterte innlegg:

Legg igjen en kommentar