2016-09-02 9 views
2

それぞれ6個の乱数の1 - 12個の配列を作成したいと思います。 現時点では私は1つしか作成できません。だから私はこれをループする方法を知らない。6個の乱数を使ってn個の異なる配列を作成する方法。 - Javascript/Jquery

これは、これまでの私のコードです:

<script type="text/javascript"> 
function schleife() {   

    var arr = []; 
    var krams = []; 

    for(i=1; i<=6; i++) { 
    var zufall = Math.floor((Math.random() * 49) + 1);   
    krams.push(zufall++); 
    } 

    arr.push(krams.toString() + "<br /><br />");   
    $(".bsp2").append(arr); 

}  

function uebertrag() { 
    schleife();  
} 
</script> 
+1

私は '12' – Rayon

答えて

2

あなたは新しい関数を作成する必要があります。たとえば、 getArrayOfRandomNumbers

function getArrayOfRandomNumbers() { 
    var krams = [] 

    for(var i=1; i<=6; i++) { 
    var zufall = Math.floor((Math.random() * 49) + 1)   
    krams.push(zufall++) 
    } 

    return krams 
} 

そして今、あなたがループ内でこの関数を呼び出すことができます。あなただけのforループによってschleife機能を12回実行しないのはなぜ

for (var j = 0; j < 12; j++) { 
    var arrayOfRandomNumber = getArrayOfRandomNumbers() 
    //do something with this array, e.g. append 

    $(".bsp2").append(arrayOfRandomNumber.toString()) 
} 
+0

のループはありがとうござい表示されません。しかし、私はそれを理解していない。 12個の配列の値を取得するにはどうすればよいですか? たとえば、 $( ".bsp2")。append(arrayOfRandomNumber2.toString()); $( ".bsp2")。append(arrayOfRandomNumber3.toString()); が機能しませんでした。 – Marcel

+0

@Marcel答えを更新しました、それは今ではっきりしていますか? – havenchyk

+0

はい、ありがとうございます! :-) – Marcel

0

を:

<script type="text/javascript"> 
function schleife() {   

    var arr = []; 
    var krams = []; 

    for(i=1; i<=6; i++) { 
     var zufall = Math.floor((Math.random() * 49) + 1);   
     krams.push(zufall++); 
    } 

    arr.push(krams.toString() + "<br /><br />");   
     $(".bsp2").append(arr); 
    }  

    function uebertrag() { 
     for (a=0; a<12; a++){ 
     schleife(); 
    } 
} 
</script> 
+0

Aahm ..私は知らない。私はJavaScriptの初心者です... 私はちょうど例のような配列を取得する方法を知りません: 16,24,38,39,44,46 - 2,11,27,31,38,45 - 14,17,20,28,34,36 - ..... – Marcel

0
function schleife(iRange, jRange) { 
    var array = [] 

    for (i = 1; i <= iRange; i++) { 
     var krams = []; 

     for(j = 1; j <= jRange; j++) { 
      var zufall = Math.floor((Math.random() * 49) + 1);   
      krams.push(zufall++); 
     } 

     array.push(krams); 
     $(".bsp2").append(krams + "<br /><br />"); 
    } 

    return array; 
}   

schleife(12, 6); 
+0

しかし、どうすれば各配列の値を取得できますか? – Marcel

+0

申し訳ありません、あなたはそれを試してみましたか?私は結果が得られません。私は何が間違っていたでしょうか? – Marcel

+0

@Marcel、それが機能するように関数を呼び出さなければなりません。 – Leo

0

ありがとうhavenchyk。私はあなたのコードでそれを作ることができました! 素晴らしい!私はこの時点まで本当に幸せです。それが今どのように見えるのです;-)

function getArrayOfRandomNumbers() { 

    var krams = []; 

    while(krams.length < 6) { 
     var zufall = Math.floor((Math.random() * 49) + 1); 
     var found = false; 

     for(var i=0; i<krams.length; i++) { 
      if(krams[i] == zufall) { 
       found = true; 
       break 
      } 
     } 

     if(!found){ 
      krams.push(zufall++); 
     }   
    }  

    return krams; 
} 

function getArrays() { 

    function compareNumbers(a, b) { 
     return a - b; 
    } 

    var results = []; 

    for (var j = 0; j <= 10; j++) { 
     var arrayOfRandomNumber = getArrayOfRandomNumbers(); 
     //do something with this array 
     results.push(arrayOfRandomNumber.splice(0, 6).sort(compareNumbers).toString()+"<br /><br />"); 
    } 

    $(".bsp2").append(results[1]); 
    $(".bsp2").append(results[2]); 
    $(".bsp2").append(results[3]); 
    $(".bsp2").append(results[4]); 
    $(".bsp2").append(results[5]); 
    $(".bsp2").append(results[6]); 
    $(".bsp2").append(results[7]); 
    $(".bsp2").append(results[8]); 
    $(".bsp2").append(results[9]); 
    $(".bsp2").append(results[10]); 
} 
+0

あなたは私の答えを有用とマークすることができればいいと思います。それはSOの大会です:) – havenchyk

+0

今私はしました。私はそのフックをクリックしました。 – Marcel

関連する問題