如何在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");
谢谢!
答案 0 :(得分:5)
function randVal(){
var x = Math.floor(Math.random() * arguments.length);
return arguments[x];
}
arguments
是一个类似于对象的数组,它引用了一个函数的所有提供参数的列表。
答案 1 :(得分:0)
只是为了与众不同!
var x = ["Chevy","Subaru","Kia","Honda","Toyota"].sort(function() {
return 0.5 - Math.random();
})[0];
alert(x);
作为一项功能,但接受Array
var randMe = function ( me ) {
if ( me ) {
return me.sort(function() {
return 0.5 - Math.random();
})[0];
}
}
alert(randMe(['a','b','c']));
还有一些原型设计
Array.prototype.rand = function() {
return this.sort(function() {
return 0.5 - Math.random();
})[0];
}
alert(['a','b','c'].rand());
here的实际随机播放功能。
答案 2 :(得分:-4)
使用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);