Løst: hvordan man tilfældigt sorterer et array-javascript

Hovedproblemet med tilfældig sortering af et array er, at det kan være meget tidskrævende.

 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>



Arrays og sorteringsfunktioner

Et array er en samling af data, der kan tilgås ved hjælp af et indeksnummer. Det første element i arrayet er ved indeks 0, det andet element er ved indeks 1, og så videre. For at få adgang til det tredje element i arrayet, skal du bruge indeksnummeret 3.

For at sortere et array kan du bruge en sorteringsfunktion. Sorteringsfunktionen tager to argumenter: en matrix og en sammenligningsfunktion. Sammenligningsfunktionen sammenligner to elementer i arrayet og returnerer en boolsk værdi. Hvis sammenligningsfunktionen returnerer sand, vil elementet i position x i arrayet blive placeret før elementet i position y i arrayet. Hvis sammenligningsfunktionen returnerer falsk, vil elementet i position x i arrayet blive placeret efter elementet i position y i arrayet.

Her er et eksempel på, hvordan man bruger en sorteringsfunktion til at sortere en matrix af tal:

var tal = [1, 2, 3, 4]; // Sorter tal ved hjælp af en sammenligningsfunktion var sortedNumbers = tal .sort(function(a, b) { return a – b; }); // Udskriv sortedNumbers console .log(sortedNumbers);

Tilfældige arrays

Et array er en samling af data, der kan tilgås ved hjælp af et indeksnummer. I JavaScript oprettes arrays ved hjælp af Array-konstruktøren.

For at oprette et tomt array skal du bruge Array()-konstruktøren:

var myArray = new Array();

For at oprette et array med fem elementer skal du bruge følgende kode:

var myArray = new Array(5);

myArray[0] = "JavaScript"; myArray[1] = "Arrays"; myArray[2] = "Funktioner"; myArray[3] = "Strings"; myArray[4] = "Booleans"; myArray[5] = "Tal";

Relaterede indlæg:

Efterlad en kommentar