Vyřešeno: jak náhodně seřadit javascript pole

Hlavním problémem náhodného řazení pole je to, že může být velmi časově 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>



Pole a funkce řazení

Pole je kolekce dat, ke kterým lze přistupovat pomocí indexového čísla. První prvek v poli je na indexu 0, druhý prvek je na indexu 1 a tak dále. Pro přístup ke třetímu prvku v poli byste použili číslo indexu 3.

Chcete-li seřadit pole, můžete použít funkci řazení. Funkce řazení má dva argumenty: pole a porovnávací funkci. Porovnávací funkce porovná dva prvky v poli a vrátí booleovskou hodnotu. Pokud porovnávací funkce vrátí hodnotu true, pak bude prvek na pozici x v poli umístěn před prvkem na pozici y v poli. Pokud porovnávací funkce vrátí hodnotu false, pak bude prvek na pozici x v poli umístěn za prvkem na pozici y v poli.

Zde je příklad, jak použít funkci řazení k řazení pole čísel:

var čísla = [1, 2, 3, 4]; // Seřazení čísel pomocí porovnávací funkce var sortedNumbers = čísla .sort(funkce(a, b) { return a – b; }); // Vytiskne konzolu sortedNumbers .log(sortedNumbers);

Náhodná pole

Pole je kolekce dat, ke kterým lze přistupovat pomocí indexového čísla. V JavaScriptu jsou pole vytvářena pomocí konstruktoru Array.

Chcete-li vytvořit prázdné pole, použijte konstruktor Array():

var myArray = new Array();

Chcete-li vytvořit pole s pěti prvky, použijte následující kód:

var myArray = new Array(5);

myArray[0] = “JavaScript”; myArray[1] = “Pole”; myArray[2] = “Funkce”; myArray[3] = “Strings”; myArray[4] = “Booleans”; myArray[5] = “Čísla”;

Související příspěvky:

Zanechat komentář