_.shuffle()
_.สับเปลี่ยน เป็นฟังก์ชันที่เป็นของ underscore.js , กรอบงาน ของจาวาสคริปต์ ฟังก์ชันนี้ใช้การสับเปลี่ยน ฟิชเชอร์-เยทส์ อัลกอริธึมเพื่อสับเปลี่ยนองค์ประกอบในลักษณะสุ่ม
ไวยากรณ์
_.shuffle(array);
วิธีนี้ใช้อาร์เรย์เป็นพารามิเตอร์และสับเปลี่ยนเพื่อให้ได้องค์ประกอบแบบสุ่ม ใช้ สับเปลี่ยนฟิชเชอร์-เยทส์ อัลกอริธึมเพื่อสับเปลี่ยนอาร์เรย์ สำหรับอินพุตเดียว มันจะสร้างเอาต์พุตแบบสุ่มต่างๆ
ตัวอย่าง
<html> <body> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script> </head> <body> <script> document.write(_.shuffle(["raj", "pankaj", "rahim", "rachel", "Balakrishna"])) </script> </body> </html>
ผลลัพธ์
rahim,Balakrishna,pankaj,raj,rachel
นอกจากนี้ยังสามารถสับเปลี่ยนวัตถุขนาดใหญ่ได้โดยใช้ การสับเปลี่ยน Fisher-Yates อัลกอริทึม สำหรับอินพุตเดียว ก็จะให้เอาต์พุตที่หลากหลาย
ตัวอย่าง
<html> <body> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script> </head> <body> <script> var people = [ {"name": "Ram", "age": 27}, {"name": "Rahim", "age": 28}, {"name": "Rakul", "age": 29}, {"name": "Rohti", "age": 21} ] document.write(JSON.stringify(_.shuffle(people, 'age'))); </script> </body> </html>
ผลลัพธ์
[{"name":"Rahim","age":28},{"name":"Rakul","age":29},{"name":"Ram","age":27},{"name":"Rohti","age":21}]