2016-03-21 22 views
-1
$rowCount = 40 ; 
for (var $j = 0; $j < $rowCount -1; $j++) { 
    var currentNum = #something 
} 

ランダムな方法で値をcurrentNumに適用する方法でループすることができるメカニズムが必要です。javascriptでランダムにループする方法は?

例:ループの最後で、currentNumの値は(0....39)である必要があります。ただし、0,1,2,3,4,5,6,7,8,.....39から適用しないでください。

39, 4, 5,17, 28 , 16 ....のようなランダムな方法で適用する必要があります。0-40のすべての数字をカバーする必要があります。私はこれがJavaでHashMapを使用して達成することができると思ったが、どのようにjavascriptで実装するのですか?

+0

見上げフィッシャーイェーツshuffleを。あなたのJavaの方法は何ですか? –

+0

http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array [こちら](https://jsfiddle.net/rayon_1990/sp6uvjek/) – Rayon

+0

ハッシュマップは保証されていません注文を保存する。しかしそれはそうするかもしれない。 – Simon

答えて

0
var numbers = Array(rowCount); 
for(var i = 0; i < rowCount; i++) numbers[i] = i; 

shuffle(numbers); // randomly shuffle array elements 

for (var $j = 0; $j < $rowCount -1; $j++) { 
    var currentNum = numbers[i]; 
} 
0

あなたはこのような何かを試すことができます。

var _data = []; 
 
for (var i = 0; i < 40; i++) { 
 
    _data.push(i); 
 
} 
 

 
var result = []; 
 

 
_data.slice().forEach(function(){ 
 
\t result.push(getRandomValue(_data)) 
 
}); 
 

 
function getRandomValue(arr,i) { 
 
    var r = Math.floor(Math.random() * arr.length); 
 
    var result = arr[r]; 
 
    arr.splice(r, 1); 
 
    return result; 
 
} 
 

 
document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");

関連する問題