Vyriešené: ako náhodne zoradiť javascript poľa

Hlavným problémom náhodného triedenia poľa je to, že môže byť veľmi časovo náročné.

 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>



Polia a funkcie triedenia

Pole je súbor údajov, ku ktorým je možné pristupovať pomocou indexového čísla. Prvý prvok v poli je na indexe 0, druhý prvok je na indexe 1 atď. Na prístup k tretiemu prvku v poli by ste použili indexové číslo 3.

Na triedenie poľa môžete použiť funkciu triedenia. Funkcia triedenia má dva argumenty: pole a porovnávaciu funkciu. Porovnávacia funkcia porovnáva dva prvky v poli a vracia boolovskú hodnotu. Ak porovnávacia funkcia vráti hodnotu true, prvok na pozícii x v poli sa umiestni pred prvok na pozícii y v poli. Ak porovnávacia funkcia vráti hodnotu false, prvok na pozícii x v poli bude umiestnený za prvkom na pozícii y v poli.

Tu je príklad, ako použiť funkciu triedenia na zoradenie poľa čísel:

var čísla = [1, 2, 3, 4]; // Zoraď čísla pomocou porovnávacej funkcie var sortNumbers = čísla .sort(funkcia(a, b) { return a – b; }); // Tlač konzoly sortedNumbers .log(sortedNumbers);

Náhodné polia

Pole je súbor údajov, ku ktorým je možné pristupovať pomocou indexového čísla. V JavaScripte sa polia vytvárajú pomocou konštruktora Array.

Ak chcete vytvoriť prázdne pole, použite konštruktor Array():

var myArray = new Array();

Ak chcete vytvoriť pole s piatimi prvkami, použite nasledujúci kód:

var myArray = new Array(5);

myArray[0] = “JavaScript”; myArray[1] = “Polia”; myArray[2] = “Funkcie”; myArray[3] = „Strings“; myArray[4] = “Booleans”; myArray[5] = „Čísla“;

Súvisiace príspevky:

Pridať komentár