如何在javascript中给变量一个随机值

How to give a variable a random value in javascript

本文关键字:一个 随机 变量 javascript      更新时间:2024-02-28

如何在javascript中给变量一个随机值?

我可以做到:

var myMake = ["Chevy","Subaru","Kia","Honda","Toyota"];
var x = Math.floor(Math.random() * 4 + 1);
var rand = myMake[x];
alert(rand);

它得到了所需的效果,给变量rand一个以下值之一的随机值:

雪佛兰、斯巴鲁、起亚、本田、丰田

但是有没有一种方法可以让函数/方法做这样的事情?:

var rand = randVal("Chevy", "Subaru", "Kia", "Honda", "Toyota");

谢谢!!

function randVal(){
  var x = Math.floor(Math.random() * arguments.length);
  return arguments[x];
}

CCD_ 2是一个类似数组的对象。

与众不同!

var x = ["Chevy","Subaru","Kia","Honda","Toyota"].sort(function() {
   return 0.5 - Math.random();
})[0];
alert(x);

jsfiddle

作为一种功能,但接受Array

var randMe = function ( me ) {
    if ( me ) {
        return me.sort(function() {
          return 0.5 - Math.random();
        })[0];
    }
}
alert(randMe(['a','b','c']));

jsfiddle

还有一些原型以及

Array.prototype.rand = function() { 
   return this.sort(function() {
     return 0.5 - Math.random();
   })[0];
}
alert(['a','b','c'].rand());

jsfiddle

还有这里的实际洗牌功能。

使用jQuery:可以很容易地做到这一点

(function($) {
    $.rand = function(arg) {
        if ($.isArray(arg)) {
            return arg[$.rand(arg.length)];
        } else if (typeof arg === "number") {
            return Math.floor(Math.random() * arg);
        } else {
            return 4;  // chosen by fair dice roll
        }
    };
    })(jQuery);
    var items = ["Chevy","Subaru","Kia","Honda","Toyota"];
    var item = $.rand(items);