Kuxazululiwe: uhlela kanjani ngokungahleliwe i-javascript yamalungu afanayo

Inkinga enkulu ngokuhlunga ngokungahleliwe uhlu ukuthi kungathatha isikhathi esiningi.

 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>



Izinhlu nemisebenzi yokuhlunga

Amalungu afanayo iqoqo ledatha engafinyelelwa kusetshenziswa inombolo yenkomba. Ingxenye yokuqala ohlwini ikunkomba 0, ingxenye yesibili ikunkomba 1, njalo njalo. Ukuze ufinyelele into yesithathu ohlwini, ungasebenzisa inombolo yenkomba 3.

Ukuhlunga amalungu afanayo, ungasebenzisa umsebenzi wokuhlunga. Umsebenzi wokuhlunga uthatha ama-agumenti amabili: amalungu afanayo nomsebenzi wokuqhathanisa. Umsebenzi wokuqhathanisa uqhathanisa izici ezimbili kumalungu afanayo futhi ubuyisela inani le-boolean. Uma umsebenzi wokuqhathanisa ubuyela kuyiqiniso, isici esisendaweni x ohlwini sizobekwa ngaphambi kwesici endaweni engu-y ohlwini. Uma umsebenzi wokuqhathanisa ubuya ungamanga, khona-ke into esendaweni ethi x inhlelo izobekwa ngemva kwesici endaweni y phakathi.

Nasi isibonelo sendlela yokusebenzisa umsebenzi wokuhlunga ukuze uhlunge uhlu lwezinombolo:

var izinombolo = [1, 2, 3, 4]; // Hlunga izinombolo usebenzisa umsebenzi wokuqhathanisa var sortedNumbers = izinombolo .sort(umsebenzi(a, b) {buyisela a – b; }); // Shicilela i-sortedNumbers console .log(sortedNumbers);

I-Random Arrays

Amalungu afanayo iqoqo ledatha engafinyelelwa kusetshenziswa inombolo yenkomba. Ku-JavaScript, amalungu afanayo adalwa kusetshenziswa umakhi we-Array.

Ukuze udale uhlu olungenalutho, sebenzisa umakhi we-Array():

var myArray = i-Array entsha ();

Ukwakha amalungu afanayo anezici ezinhlanu, sebenzisa ikhodi elandelayo:

var myArray = i-Array entsha(5);

myArray[0] = “JavaScript”; myArray[1] = “Izinhlu”; myArray[2] = “Imisebenzi”; myArray[3] = “Izintambo”; myArray[4] = “Amabhunu”; myArray[5] = “Izinombolo”;

Okuthunyelwe okuhlobene:

Shiya amazwana