猿问

js 二维数组交叉取随机数,如何实现取到的随机数比较平均?

有一个二维数组,如何交叉(上下左右不相邻)取2或3个随机数?

数组:

var a = [
    [0, 1],
    [2, 3],
    [4, 5],
    [6, 7]
];

这样写了一个,但是感觉很死板,取到的数不太平均而且代码写的有点臃肿,大神们有更好的方案吗?

function select() {

    var a = [

        [0, 1],

        [2, 3],

        [4, 5],

        [6, 7]

    ];


    var lastSelect = -1;


    for (var i = 0; i < a.length; i++) {


        var index = getRandomNumber(lastSelect, a[i].length);


        console.log(a[i][index]);


        lastSelect = index;

    }


}


function getRandomNumber(lastSelect, max) {


    var random = Math.floor(Math.random() * max);


    if (random == lastSelect) return getRandomNumber(lastSelect, max);


    else return random;


}


select()


叮当猫咪
浏览 424回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答