如何使用JQUERY从数组中获取随机图像并在警报中显示图像名称而又不重复显示相同图像

时间:2018-08-15 06:09:33

标签: javascript jquery

我正在开发一个项目,因为我有随机获取图像的要求,所以我希望每次警报应显示随机图像且不应重复时都发出9张图像的警报,但在我的情况下,我会收到重复图像的警报,而不是4次警报我得到8个警报,在这里我想要count_time = 4,它已在我的jquery代码下面的变量中声明,以便在每个警报中获取随机图像而无需重复。

      <script>
    //alert shoud get only 4 times because count_time is 4
     $("body").on('click','.cell',function(){
        var images_var = ["1.jpg", "2.jpg","3.jpg","4.jpg"];
                 var count_time=4;
                   var test = [];
                    var useNumbers = {};
                    for (i = 1; test.length < count_time; i++) {
                      var rng = Math.floor((Math.random() * count_time) + 1);
                       var random = images_var[Math.floor(Math.random()*images_var.length)];
                      alert(random);
                      if (!useNumbers[rng]) {
                      test.push(rng);
                      useNumbers[rng] = true;

                      }

                    }
});

        </script>

1 个答案:

答案 0 :(得分:0)

仔细观察并应用条件后终于解决了我的问题

<script>
$("body").on('click','.cell',function(){

     var images_var = ["1.jpg", "2.jpg","3.jpg","4.jpg"];
                 var count_time=4;
                   var test = [];
                   var img_push=[];
                    var useNumbers = {};var random_img={};
                    for (i =1; test.length < count_time; i++) {

                      var rng = Math.floor((Math.random() * count_time));
                      var random = images_var[Math.floor(Math.random()*images_var.length)];

                      if ((!useNumbers[rng]) && (!random_img[random])) {


                      test.push(rng);
                       img_push.push(random);


                      useNumbers[rng] = true;
                       random_img[random] = true;
  alert(random);
                      }

                    }

      });
</script>