有一个二维数组,如何交叉(上下左右不相邻)取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()
相关分类