วิธีทำ
ใช้ Math.random() ร่วมกับ Fisher-Yates shuffle algorithm
ตัวอย่างโค้ด
var subjectNames = ["Javascript", "MySQL", "Java", "MongoDB", "Python","Spring Framework"];
for(var index = subjectNames.length - 1; index > 0; index--){
var rndIndex = Math.floor(Math.random() * (index + 1));
var subjNameTemp = subjectNames[rndIndex];
subjectNames[rndIndex] = subjectNames[index];
subjectNames[index] = subjNameTemp;
}
var getRandomSubjectName = subjectNames.slice(0, 3);
console.log(getRandomSubjectName);
วิธีรัน
node fileName.js
ชื่อไฟล์ demo178.js
ผลลัพธ์
PS C:\Users\Amit\javascript-code> node demo178.js [ 'Javascript', 'MySQL', 'Python' ]
คำอธิบาย
ใช้ Fisher-Yates shuffle สับเปลี่ยน array แบบ random แล้ว slice(0, 3) เอา 3 ตัวแรก ได้ 3 ค่าที่สุ่มไม่ซ้ำ