账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JS如何将2N个元素数组两两随机分组呢?
    • 2018-05-27 00:00
    • 10
    27
    0

    我想将一个有偶数个元素的数组两两随机分组,比如

    [1,2,3,4,5,6,7,8]
    

    输出可能有一个结果是:

    [[1,3],[2,5],[4,8],[6,7]]
    

    自己尝试写了一下代码,如下:

    function arrSlice(arr) {
        if(arr.length % 2 !== 0) return 0;
        var 
            newArr = [],
            //临时辅助数组
            tmpArr = [];
        for(let i=0;i<arr.length;i++) {
            if(!tmpArr.includes(arr[i])) {
                var rndIndex;
                do {
                    rndIndex = Math.floor(Math.random() * (arr.length - (i + 1))) + (i + 1);
                } while(tmpArr.includes(arr[rndIndex]));
                newArr.push([arr[i],arr[rndIndex]]);
                tmpArr.push(arr[i]);
                tmpArr.push(arr[rndIndex]);
            }
        }
        return newArr;
    }
    
    var arr = [1,2,3,4,5,6,7,8]
    console.log(arrSlice(arr));

    自己是一个JS新手,感觉写出来的有点生硬,不知道有没有更好的一个实现,向各位大牛请教下,谢谢

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部