Ratkaistu: kuinka satunnaisesti lajitella taulukon javascript

Suurin ongelma taulukon satunnaisessa lajittelussa on, että se voi olla hyvin aikaa vievää.

 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>



Taulukot ja lajittelufunktiot

Taulukko on kokoelma tietoja, joita voidaan käyttää indeksinumeron avulla. Matriisin ensimmäinen elementti on indeksissä 0, toinen elementissä indeksissä 1 ja niin edelleen. Jos haluat käyttää taulukon kolmatta elementtiä, käytä indeksinumeroa 3.

Voit lajitella taulukon käyttämällä lajittelufunktiota. Lajittelufunktiolla on kaksi argumenttia: taulukko ja vertailufunktio. Vertailufunktio vertaa kahta taulukon elementtiä ja palauttaa loogisen arvon. Jos vertailufunktio palauttaa arvon tosi, taulukon sijainnissa x oleva elementti sijoitetaan taulukon sijainnin y elementin edelle. Jos vertailufunktio palauttaa epätosi, niin elementti kohdassa x inthearray sijoitetaan elementin perään kohtaan y inthearray.

Tässä on esimerkki siitä, kuinka lajittelufunktiota käytetään numerojoukon lajitteluun:

var numerot = [1, 2, 3, 4]; // Lajittele luvut vertailijafunktiolla var sortedNumbers = numerot .sort(function(a, b) { return a – b; }); // Tulosta sortedNumbers-konsoli .log(sortedNumbers);

Satunnaiset taulukot

Taulukko on kokoelma tietoja, joita voidaan käyttää indeksinumeron avulla. JavaScriptissä taulukot luodaan Array-konstruktorilla.

Luo tyhjä taulukko käyttämällä Array()-konstruktoria:

var myArray = new Array();

Voit luoda viiden elementin taulukon käyttämällä seuraavaa koodia:

var myArray = uusi Array(5);

myArray[0] = "JavaScript"; myArray[1] = "Matriisit"; myArray[2] = "Toiminnot"; myArray[3] = "Jousut"; myArray[4] = "Totuusarvot"; myArray[5] = "Numerot";

Related viestiä:

Jätä kommentti