随机分组问题

发布于 2022-09-05 08:32:56 字数 872 浏览 10 评论 0

8个男生,8个女生,分成4组,每组4人,要求每组男生和女生一样多.结果是一个二维数组.
第二次分组以第一次分组为输入,要求第一次在同一组的人不在同一组,男女均等.

这是我写的第一次分组的函数,感觉写得不够简单

var tues=[];
var groupsTues = function () {
    var girls = ['月儿', '鱼儿', '玉儿', '雨儿', '少儿', '可儿', '灵儿', '皮儿'];
    var boys = ['小张', '小王', '小李', '小赵', '小周', '小吴', '小郑', '小陈'];

    var arrIndex = [];
    for (var n = 0; n < 8; n++) {
        arrIndex[n] = n;
    }
    for (var i = 0; i < 4; i++) {
        tues[i] = [];
        var m = Math.floor(Math.random() * (8 - i * 2));
        tues[i][0] = boys[m];
        tues[i][2] = girls[m];
        boys.splice(m, 1);
        girls.splice(m, 1);
        var n = Math.floor(Math.random() * (8 - i * 2 - 1));
        tues[i][1] = boys[n];
        tues[i][3] = girls[n];
        boys.splice(n, 1);
        girls.splice(n, 1);
    }
    console.log(tues)
    return tues;

};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

允世 2022-09-12 08:32:56

来自百度网友的答案:

var tues = [];
var groupsTues = function () {
   var girls = ['月儿', '鱼儿', '玉儿', '雨儿', '少儿', '可儿', '灵儿', '皮儿'];
   var boys = ['小张', '小王', '小李', '小赵', '小周', '小吴', '小郑', '小陈'];
   var gps = arguments;
   gps.length ? tues = [] : 0;
   L: for(var i = 0; i < 4; i++){
       var tmp = [];
       for(var j = 0;j < 2;j++){
           var x = [girls, boys];
           for(var k = 0; k < x.length; k++){
               var xk = x[k];
               var ind = Math.floor(Math.random() * xk.length);
               tmp.push(xk.splice(ind, 1).join(""));
           }
       }
       if(!!gps){
           var str = tmp.join("");
           for(var m = 0; m < gps.length; m++){
               if(gps[m].join("") == str){
                   i--;
                   continue L;
               }
           }
       }
       tues.unshift(tmp);
   }
}
groupsTues();
console.info(tues);
groupsTues(tues);
console.warn(tues);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文