2017-05-27 2 views
0

アレイでは、ランダムに3つの数値を取ることが、非隣接し、左右上下の数(配列は、乱数を渡る)JavaScriptの配列は、乱数を渡る?

は、これは私が最適化する方法、私のコードです(より均等に番号を得る)?

感謝〜

配列

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(); 

答えて

0

Javascriptが除算の余りを見つけmodulus operator %を持っています。

var a = [ 
 
    [0, 1], 
 
    [2, 3], 
 
    [4, 5], 
 
    [6, 7] 
 
]; 
 
function select() { 
 
    //generating random 0 or 1 
 
    var random = Math.round(Math.random()); 
 
    for (var i = 0; i < a.length; i++) { 
 
    console.log(a[i][(i+random)%2]);// 0 or 1 
 
    } 
 
    console.log("-----------"); 
 
} 
 
//test 
 
for(var j=0;j<5;j+=1){ 
 
    select(); 
 
}

+0

すごい.. しかし、どのようにランダムに抽出するために? – lucus

+0

'[(i + Math.round(Math.random()))%2]'更新を参照してください – AvrilAlejandro