JavaScript三人选一人代码
程序思路1
1、将研一的三组建成三个小的数组,从这三个数组里每组随机抽取一人;
2、将第一步里抽取出来的三人和研二的五人放在一起,组成一个新的数组,在从中随机抽取三人;
3、若随机抽取的三人存在上述情况,则返回第一步,重新随机抽取,直到不存在第二步的情况,然后输出;
程序思路2
将实验室所有人放在一个大的数组里,先从数组里随机抽取三人;
将研一的三组建成三个小的数组,把随机抽取出来的三人去循环判断是否存在两人或者两人以上在同一组;
思路一程序如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 | for (var i=0;i<3;i++) { index1 = und(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++; } } } lick = function (){ var id = setInterval(frame,500); function frame() { if (!flag) { clearInterval(id); flag=true; } else { Begin(); ElementById("name").innerHTML=""; for (var i = 0; i < newarray.length; i++) { ElementById("name").innerHTML += newarray[i] + "</br> "; } flag=falsetypeof array; newarray=[]; } } } |
思路二的程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function Begin() { num1 = und(Math.random() * (arr4.length - 1)); num2 = und(Math.random() * (arr4.length - 1)); num3 = und(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 = und(Math.random() * (arr4[array[i]].length - 1)); arrayLast.push(arr4[array[i]][num4]); } } } else { Begin(); } console.log(arrayLast); ElementById("name").innerHTML=""; for (var i = 0; i < arrayLast.length; i++) { ElementById("name").innerHTML += arrayLast[i] + "</br> "; } } lick = function () { Begin(); } |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论