画像の配列があるとしましょう。今、私は常に同じ順序を持ちたいと思っていますが、開始位置は異なります。Backstretch でインデックスを強制することはできますが、最初のイメージが既に起動される前ではありません。そのため、当然、配列をオフセットしたいと思います。
['1','2','3','4']
確率変数に応じて、なるはずです
['3','4','1','2'].
どうすればこれを達成できますか?
画像の配列があるとしましょう。今、私は常に同じ順序を持ちたいと思っていますが、開始位置は異なります。Backstretch でインデックスを強制することはできますが、最初のイメージが既に起動される前ではありません。そのため、当然、配列をオフセットしたいと思います。
['1','2','3','4']
確率変数に応じて、なるはずです
['3','4','1','2'].
どうすればこれを達成できますか?
TJ Crowdersの回答は素晴らしいですが、注文を維持する場合、ここに私の2セントがあります
var arr = ['1', '2', '3', '4']; //your source array
var rand = Math.round(Math.random()*arr.length); //get the random
var part = arr.splice(0, rand); //split from start to that number
arr = arr.concat(part); //concat back to push the part to the end for the order to be preserved.
//get your item arr[0]
ランダムに生成された n 数だけ要素をシフトする関数を作成できます。
function randShiftArr(arr) {
var rand = Math.floor(Math.random() * arr.length);
for (var i = 0; i < rand; i++)
arr.unshift(arr.pop())
return arr;
}
var arr = ['1', '2', '3', '4'];
var shifted = randShiftArr(arr);
alert(shifted.join());