jQuery从字符串数组中选择一个随机值

jQuery pick a random value from a array of strings

本文关键字:一个 随机 字符串 数组 选择 jQuery      更新时间:2023-09-26

我知道如何在PHP中做到这一点,但在javascript数组中却很奇怪。

所以我有一组图像转换,它们有使用缓和方程的效果。对于某些效果,我想从多个值的数组中提取一个随机值:

类似于:

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();

有趣的演示:http://jsfiddle.net/aamir/psWvy/

我对这个问题反应迟钝。如果你不介意在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)的解决方案。