Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从数组中返回随机值?_Javascript - Fatal编程技术网

Javascript 如何从数组中返回随机值?

Javascript 如何从数组中返回随机值?,javascript,Javascript,我正在使用jQuery验证插件,希望在成功时返回一个随机值 现在我正在尝试使用: var success_message = new Array (); success_message[0] = "Good!"; success_message[1] = "Ok!"; success_message[2] = "Great!"; success_message[3] = "Perfect!"; success_message[4] =

我正在使用jQuery验证插件,希望在成功时返回一个随机值

现在我正在尝试使用:

     var success_message = new Array ();
     success_message[0] = "Good!";
     success_message[1] = "Ok!";
     success_message[2] = "Great!";
     success_message[3] = "Perfect!";
     success_message[4] = "Nice!";
     success_message[5] = "Awesome"; 
     var i = Math.floor(5 * Math.random())
然后,我需要输出我使用的值:

 $(document).ready(function(){
     var validator = $(".contactform").validate({
        success: function(label) {
           label.addClass("valid").text(success_message[i])
        }
     }); //end form validate code
 });

这会选择一个随机值,但对每个成功消息使用相同的值,而不是为每个字段选择不同的值。

您可以存储
消息
数组,并计算消息以在运行时显示,如下所示:

var messages = ["Good!", "Great!", "Awesome!", "Super!", "Nice!"];
function getMessage() {
   return messages[Math.floor(Math.random() * messages.length)];
}
label.addClass("valid").text(getMessage());
,然后只需在通话中调用
getMessage
,如下所示:

var messages = ["Good!", "Great!", "Awesome!", "Super!", "Nice!"];
function getMessage() {
   return messages[Math.floor(Math.random() * messages.length)];
}
label.addClass("valid").text(getMessage());

我们可以将方法添加到数组中

Array.prototype.getRandomVal = function(){
    return this[Math.floor(Math.random()*this.length)];
};

messages.getRandomVal();

@布兰登-一旦被问到问题,你应该避免彻底改变。现在的答案对后来发现这个问题的人来说意义不大,因为这个问题与答案不再匹配。你是对的,我在编辑它之后就想到了这一点。在我编辑它的时候,它没有答案。这与jQuery验证无关。它几乎可以工作,但为每个字段元素返回相同的消息。@BandonRandon-我以为你只有一个,就一会儿:)@BandonRandon-更新为每个元素随机,我建议您进一步删除使用过的消息,这样就不能重复了。对不起,我应该说清楚每个表单元素都有一个。太好了!谢谢,还有几个问题,如果我真的想让它不再重复,我会怎么做?也因为它是在keyup上初始化的,所以它会随着每次按键或鼠标单击而重新生成。我可以用stop()或其他方法来停止吗?