Išspręsta: kaip atsitiktinai surūšiuoti masyvo javascript

Pagrindinė atsitiktinio masyvo rūšiavimo problema yra ta, kad tai gali užtrukti labai daug laiko.

 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>



Masyvai ir rūšiavimo funkcijos

Masyvas yra duomenų rinkinys, kurį galima pasiekti naudojant indekso numerį. Pirmasis masyvo elementas yra indeksas 0, antrasis elementas yra indeksas 1 ir pan. Norėdami pasiekti trečiąjį masyvo elementą, turėtumėte naudoti indekso numerį 3.

Norėdami rūšiuoti masyvą, galite naudoti rūšiavimo funkciją. Rūšiavimo funkcija turi du argumentus: masyvą ir palyginimo funkciją. Palyginimo funkcija lygina du masyvo elementus ir grąžina loginę reikšmę. Jei palyginimo funkcija grąžina true, tada masyvo x pozicijoje esantis elementas bus dedamas prieš elementą y padėtyje masyve. Jei palyginimo funkcija grąžina false, tada elementas, esantis x padėtyje, bus dedamas po elemento, esančio y padėtyje.

Štai pavyzdys, kaip naudoti rūšiavimo funkciją skaičių masyvui rūšiuoti:

var skaičiai = [1, 2, 3, 4]; // Rūšiuoti skaičius naudojant palyginimo funkciją var sortedNumbers = skaičiai .sort(function(a, b) { return a – b; }); // Išspausdinti surūšiuotųNumbers konsolę .log(sortedNumbers);

Atsitiktiniai masyvai

Masyvas yra duomenų rinkinys, kurį galima pasiekti naudojant indekso numerį. „JavaScript“ masyvai sukuriami naudojant „Array“ konstruktorių.

Norėdami sukurti tuščią masyvą, naudokite Array() konstruktorių:

var myArray = naujas Masyvas();

Norėdami sukurti masyvą su penkiais elementais, naudokite šį kodą:

var myArray = naujas Masyvas(5);

myArray[0] = "JavaScript"; myArray[1] = "Masyvai"; myArray[2] = "Funkcijos"; myArray[3] = "Stygos"; myArray[4] = "Bulio vertės"; myArray[5] = "Skaičiai";

Susijusios naujienos:

Palikite komentarą