私はこれをPHPで行う方法を知っていますが、javascript配列は奇妙です。jQueryは文字列の配列からランダムな値を選択します
私はイージング方程式を使用する効果を持つ一連の画像トランジションを持っています。これを試してみてください
easing: randomFrom(array('easeOutElastic', 'easeOutBounce', 'easeOutSince')),
私はこれをPHPで行う方法を知っていますが、javascript配列は奇妙です。jQueryは文字列の配列からランダムな値を選択します
私はイージング方程式を使用する効果を持つ一連の画像トランジションを持っています。これを試してみてください
easing: randomFrom(array('easeOutElastic', 'easeOutBounce', 'easeOutSince')),
function randomFrom(array) {
return array[Math.floor(Math.random() * array.length)];
}
// in your code
easing: randomFrom(['easeOutElastic', 'easeOutBounce', 'easeOutSince']),
:については
function randomFrom(arr){
var randomIndex = Math.floor(Math.random() * arr.length);
return arr[randomIndex];
}
何かのように:一定の効果については は、私は、複数の値の配列からランダムな値をピックアップしますデモ私はランダムなイージングストリングを取得しようとしていました;)
function getRandomEasing() {
var easingArr = [];
for(easing in $.easing){
easingArr.push(easing);
}
var rnd = Math.floor(Math.random() * easingArr.length);
return easingArr[rnd];
}
var randomEasing = getRandomEasing();
元のソリューションで毎回新しいアレイを作成する必要があるのはなぜですか? '$ .easing'の中に要素を直接返すだけではどうですか? http://jsfiddle.net/psWvy/2/ –
私はこの質問への後半のコーナーです。あなたはArray
にメソッドを追加する気にしない場合は、次のことができます。
Array.prototype.pickARandomElement = function() {
return this[Math.floor(Math.random() * this.length)];
}
テストの実行:
> [10, 123, 777].pickARandomElement()
10
> [10, 123, 777].pickARandomElement()
777
> [10, 123, 777].pickARandomElement()
777
> [10, 123, 777].pickARandomElement()
123
次は楽しみのためだけにある:
Array.prototype.pickARandomElement = function() {
return this.sort(function() { return Math.random() - 0.5; })[0];
}
それはシャッフルのようなものですカードのデッキと一番上のカードを返す。しかし、その時間の複雑さはO(n log n)
なので、私はそれを実際には使用しません。ここでの最初の解決策は、O(1)
の解決策です。
私はすごく近かったが、返すのを忘れてしまった:-P – Neal
@Neal、oops、Rubyをあまりにも多くするとどうなるのか。 – Dogbert