แก้ไขแล้ว: วิธีการจัดเรียงจาวาสคริปต์อาร์เรย์แบบสุ่ม

ปัญหาหลักในการจัดเรียงอาร์เรย์แบบสุ่มคืออาจใช้เวลานานมาก

 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

ในการจัดเรียงอาร์เรย์ คุณสามารถใช้ฟังก์ชันการเรียงลำดับ ฟังก์ชันการเรียงลำดับใช้สองอาร์กิวเมนต์: ฟังก์ชันอาร์เรย์และการเปรียบเทียบ ฟังก์ชันการเปรียบเทียบจะเปรียบเทียบสององค์ประกอบในอาร์เรย์และส่งกลับค่าบูลีน หากฟังก์ชันการเปรียบเทียบส่งคืนค่าจริง องค์ประกอบที่ตำแหน่ง x ในอาร์เรย์จะถูกวางไว้ก่อนองค์ประกอบที่ตำแหน่ง y ใน thearray หากฟังก์ชันการเปรียบเทียบส่งคืนค่าเท็จ องค์ประกอบที่ตำแหน่ง x ในเธียร์เรย์จะถูกวางไว้หลังองค์ประกอบที่ตำแหน่ง y ในเธียร์เรย์

ต่อไปนี้คือตัวอย่างวิธีใช้ฟังก์ชันการเรียงลำดับเพื่อจัดเรียงอาร์เรย์ของตัวเลข:

ตัวเลข var = [1, 2, 3, 4]; // เรียงลำดับตัวเลขโดยใช้ฟังก์ชันเปรียบเทียบ var sortedNumbers = ตัวเลข .sort(function(a, b) { return a – b; }); // พิมพ์คอนโซล sortedNumbers .log (sortedNumbers);

อาร์เรย์แบบสุ่ม

อาร์เรย์คือชุดของข้อมูลที่สามารถเข้าถึงได้โดยใช้หมายเลขดัชนี ใน JavaScript อาร์เรย์ถูกสร้างขึ้นโดยใช้ตัวสร้างอาร์เรย์

หากต้องการสร้างอาร์เรย์ว่าง ให้ใช้ตัวสร้าง Array() ดังนี้

var myArray = อาร์เรย์ใหม่ ();

หากต้องการสร้างอาร์เรย์ที่มีองค์ประกอบ XNUMX รายการ ให้ใช้โค้ดต่อไปนี้

var myArray = อาร์เรย์ใหม่ (5);

myArray[0] = “จาวาสคริปต์”; myArray[1] = “อาร์เรย์”; myArray[2] = “ฟังก์ชัน”; myArray[3] = “สตริง”; myArray[4] = “บูลีน”; myArray[5] = “ตัวเลข”;

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น