נפתרה: כיצד למיין באופן אקראי מערך javascript

הבעיה העיקרית עם מיון אקראי של מערך היא שזה עלול לקחת זמן רב.

 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>



מערכים ופונקציות מיון

מערך הוא אוסף של נתונים שניתן לגשת אליו באמצעות מספר אינדקס. האלמנט הראשון במערך נמצא באינדקס 0, האלמנט השני נמצא באינדקס 1, וכן הלאה. כדי לגשת לאלמנט השלישי במערך, תשתמש באינדקס מספר 3.

כדי למיין מערך, אתה יכול להשתמש בפונקציית מיון. פונקציית המיון לוקחת שני ארגומנטים: מערך ופונקציית השוואה. פונקציית ההשוואה משווה שני אלמנטים במערך ומחזירה ערך בוליאני. אם פונקציית ההשוואה מחזירה true, אז האלמנט במיקום x במערך ימוקם לפני האלמנט במיקום y במערך. אם פונקציית ההשוואה מחזירה false, אז האלמנט במיקום x בתוך המערך ימוקם אחרי האלמנט במיקום y במערך.

להלן דוגמה כיצד להשתמש בפונקציית מיון כדי למיין מערך של מספרים:

var numbers = [1, 2, 3, 4]; // מיין מספרים באמצעות פונקציית השוואה var sortedNumbers = numbers .sort(function(a, b) { return a – b; }); // הדפס sortedNumbers console .log(sortedNumbers);

מערכים אקראיים

מערך הוא אוסף של נתונים שניתן לגשת אליו באמצעות מספר אינדקס. ב-JavaScript, מערכים נוצרים באמצעות הבנאי Array.

כדי ליצור מערך ריק, השתמש בבנאי Array():

var myArray = new Array();

כדי ליצור מערך עם חמישה אלמנטים, השתמש בקוד הבא:

var myArray = new Array(5);

myArray[0] = "JavaScript"; myArray[1] = "מערכים"; myArray[2] = "פונקציות"; myArray[3] = "מחרוזות"; myArray[4] = "בוליאנים"; myArray[5] = "מספרים";

הודעות קשורות:

השאירו תגובה