JSは無作為に3人を抽出することを実現します。


実験室は週に3人がレポートをするので、JSでランダムに抽出したページを作ります。
まず、需要について話してください。研二さんは5人で、一人は単独のグループで、研一さんは全部で9人です。したがって、8つのグループで、毎週報告されている3人は8つのグループから抽出されます。この3人は2人または2人以上が同じグループにいてはいけません。
プログラムの考え方1
1.研一の3つのグループを3つの小さな配列にし、この3つの配列の中からランダムに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();

 }
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。