您好,登錄后才能下訂單哦!
因為實驗室每周需要三人來做報告,所以用JS來做一個隨機抽取的頁面。
首先,先說一下需求。研二同學共5人,一人是單獨的一組,研一同學共9人,同時九人分為三組。所以共八組,每周報告的三人從八組中抽取,這三人不能有兩人或者兩人以上在同一組。
程序思路1
1.將研一的三組建成三個小的數組,從這三個數組里每組隨機抽取一人;
2. 將第一步里抽取出來的三人和研二的五人放在一起,組成一個新的數組,在從中隨機抽取三人;
3. 若隨機抽取的三人存在上述情況,則返回第一步,重新隨機抽取,直到不存在第二步的情況,然后輸出;
程序思路2
將實驗室所有人放在一個大的數組里,先從數組里隨機抽取三人;
將研一的三組建成三個小的數組,把隨機抽取出來的三人去循環判斷是否存在兩人或者兩人以上在同一組;
最后實現
本來以為思路一比較好做,做到后面發現判斷是否同一組再重新進行函數運行,總是出現問題,選出來的三個人通過for循環去判斷,理論可以但是卻不能實現,還需要我再仔細想想。思路一程序如下
for (var i=0;i<3;i++) { index1 = Math.round(Math.random()*(array.length-1)); value = array[index1]; newarray.push(value); array.splice(index1,1); value =''; } console.log(newarray); for (var j =0;j<newarray.length;j++) { for (var m = 0; m < arr1.length; m++) { if (newarray[j] === arr1[m]){ num1++; } } for (var n = 0; n < arr2.length; n++) { if (newarray[j] === arr2[n]){ num2++; } } for (var o = 0; o < arr3.length; o++) { if (newarray[j] === arr3[o]){ num3++; } } } btn.onclick = function (){ var id = setInterval(frame,500); function frame() { if (!flag) { clearInterval(id); flag=true; } else { Begin(); document.getElementById("name").innerHTML=""; for (var i = 0; i < newarray.length; i++) { document.getElementById("name").innerHTML += newarray[i] + "</br> "; } flag=false; newarray=[]; } } }
這里面還是存在一些問題,思路二可以正常實現,下面是思路二的程序:
function Begin() { num1 = Math.round(Math.random() * (arr4.length - 1)); num2 = Math.round(Math.random() * (arr4.length - 1)); num3 = Math.round(Math.random() * (arr4.length - 1)); Begin2(); } function Begin2() { var array = []; var arrayLast = []; if (num1 !== num2 && num1 !== num3 && num2 !== num3) { array.push(num1); array.push(num2); array.push(num3); for (var i = 0; i < array.length; i++) { if (typeof arr4[array[i]] === "string") { arrayLast.push(arr4[array[i]]); } else { var num4 = Math.round(Math.random() * (arr4[array[i]].length - 1)); arrayLast.push(arr4[array[i]][num4]); } } } else { Begin(); } console.log(arrayLast); document.getElementById("name").innerHTML=""; for (var i = 0; i < arrayLast.length; i++) { document.getElementById("name").innerHTML += arrayLast[i] + "</br> "; } } btn.onclick = function () { Begin(); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。