Solvita: kiel hazarde ordigi tabelon javaskripto

La ĉefa problemo kun hazarde ordigado de tabelo estas ke ĝi povas esti tre tempopostula.

 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>



Tabeloj kaj ordigaj funkcioj

Tabelo estas kolekto de datumoj alireblaj per indeksa nombro. La unua elemento en la tabelo estas ĉe indekso 0, la dua elemento estas ĉe indekso 1, kaj tiel plu. Por aliri la trian elementon en la tabelo, vi uzus la indeksan numeron 3.

Por ordigi tabelon, vi povas uzi ordigan funkcion. La ordiga funkcio prenas du argumentojn: tabelo kaj kompara funkcio. La kompara funkcio komparas du elementojn en la tabelo kaj resendas bulean valoron. Se la kompara funkcio redonas vera, tiam la elemento ĉe pozicio x en la tabelo estos metita antaŭ la elemento ĉe pozicio y en la tabelo. Se la kompara funkcio liveras malvera, tiam la elemento ĉe pozicio x en la tabelo estos metita post la elemento ĉe pozicio y en la tabelo.

Jen ekzemplo de kiel uzi ordigan funkcion por ordigi tabelon de nombroj:

var nombroj = [1, 2, 3, 4]; // Ordigi nombrojn per kompara funkcio var ordigitajNombroj = nombroj .sort(function(a, b) { return a – b; }); // Presas ordigitajnNumerojn konzolo .log(ordigitajNombroj);

Hazardaj Tabeloj

Tabelo estas kolekto de datumoj alireblaj per indeksa nombro. En JavaScript, tabeloj estas kreitaj uzante la Array-konstruktilon.

Por krei malplenan tabelon, uzu la konstruktilon Array():

var miaArray = nova Array ();

Por krei tabelon kun kvin elementoj, uzu la sekvan kodon:

var miaArray = nova Array (5);

myArray[0] = “JavaScript”; myArray[1] = “Tabeloj”; myArray[2] = “Funkcioj”; myArray[3] = “Ŝnuroj”; myArray[4] = “Buleanoj”; myArray[5] = “Nombroj”;

Rilataj afiŝoj:

Lasu komenton