Megoldva: hogyan lehet véletlenszerűen rendezni egy tömb javascriptet

A tömb véletlenszerű rendezésének fő problémája az, hogy nagyon időigényes lehet.

 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>



Tömbök és rendezési függvények

A tömb olyan adatgyűjtemény, amely indexszámmal érhető el. A tömb első eleme a 0 indexű, a második eleme az 1 indexű, és így tovább. A tömb harmadik elemének eléréséhez a 3-as indexszámot kell használni.

Egy tömb rendezéséhez rendezési függvényt használhat. A rendezési függvénynek két argumentuma van: egy tömb és egy összehasonlító függvény. Az összehasonlító függvény összehasonlítja a tömb két elemét, és egy logikai értéket ad vissza. Ha az összehasonlító függvény true értéket ad vissza, akkor a tömbben az x pozícióban lévő elem a tömb y pozíciójában lévő elem elé kerül. Ha az összehasonlító függvény false értéket ad vissza, akkor a tömbben lévő x pozícióban lévő elem az y pozícióban lévő elem után kerül a tömbben.

Íme egy példa arra, hogyan használhatunk rendezési függvényt számtömbök rendezésére:

var számok = [1, 2, 3, 4]; // Számok rendezése összehasonlító függvény segítségével var sortedNumbers = számok .sort(function(a, b) { return a – b; }); // SortedNumbers konzol kinyomtatása .log(sortedNumbers);

Véletlenszerű tömbök

A tömb olyan adatgyűjtemény, amely indexszámmal érhető el. A JavaScriptben a tömbök az Array konstruktor segítségével jönnek létre.

Üres tömb létrehozásához használja az Array() konstruktort:

var myArray = new Array();

Öt elemből álló tömb létrehozásához használja a következő kódot:

var myArray = new Array(5);

myArray[0] = "JavaScript"; myArray[1] = "Tömbök"; myArray[2] = "Funkciók"; myArray[3] = "Karakterláncok"; myArray[4] = "Logiai"; myArray[5] = "Számok";

Kapcsolódó hozzászólások:

Írj hozzászólást