2016-03-19 4 views
0

私はこの配列を持っていますか?有効なシーケンスは3,2,1,2,3,1であり、無効なシーケンスは1,1,1または2,2,3です。ループは一度

答えて

3

私はランダム化するために、特定のjQueryのメソッドを認識していないんだけど、あなたはランダムな順序によって、ループに配列をソートできます。

$(function() { 
 
    var numberArray = [1,2,3]; 
 
    numberArray.sort(function() { 
 
     return 0.5 - Math.random(); 
 
    }) 
 
    $.each(numberArray, function(k,v) { 
 
     $('div').append(v); 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div></div>

+0

ありがとう、短いと甘い! – ohyeah

0

これはあなたのためのトリックを行う必要があります。今のところ、スクリプトはJQueryの各関数の中からコンソールの各配列の値を出力しますが、$ .each関数の中から必要なものを簡単に行うことができます。私は配列の値を$ eachループ内にparseInt()していないので、型の番号が必要な場合は、それをしなければなりません。

Live Example

//The array to randomize 
var numberArray = [1, 2, 3] 

//sort the array randomly and convert it back to an array so 
//that you can get the value of object inside the each function. 
var randomArray = numberArray.sort(randomSort).toString().split(","); 

//loop through the random array 
$.each(randomArray,function(){ 

    //log the value 
    console.log(this); 

}); 

/* randomSort function */ 
function randomSort(a,b) { 
    // Get a random number between 0 and 10 
    var temp = parseInt(Math.random()*10); 

    // Get 1 or 0, whether temp is odd or even 
    var isOddOrEven = temp%2; 

    // Get +1 or -1, whether temp greater or smaller than 5 
    var isPosOrNeg = temp>5 ? 1 : -1; 

    // Return -1, 0, or +1 
    return(isOddOrEven*isPosOrNeg); 
} 
+0

文字列に変換してバック変換のポイントは何ですか? – charlietfl

+0

@charlietflオーハイがループ内のオブジェクトを操作できるようにすることだけでした。 –

+0

答えをありがとう、私はソート機能について知りませんでした。私はあなたの答えとダンカンによって投稿されたものを試しました、どちらも同じことをしているようです。あなたのより複雑な見た目のランダマイザを他のものよりも使うとどんな利点がありますか? – ohyeah