Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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 试图在java中创建一个重复函数,该函数将重复一个函数';x';次,然后在';x';时代_Javascript_Html - Fatal编程技术网

Javascript 试图在java中创建一个重复函数,该函数将重复一个函数';x';次,然后在';x';时代

Javascript 试图在java中创建一个重复函数,该函数将重复一个函数';x';次,然后在';x';时代,javascript,html,Javascript,Html,我正在努力创建一个随机图像生成器,用Javascript显示随机图像。我已经能够通过Javascript数学和使用随机变量使其显示随机图像。但遗憾的是,我还没有资格让我的代码自己重复 我知道这可能非常简单,但正如你所知,我们都从某个地方开始。我已经尽了最大努力压缩我的代码,我也查看了其他stackoverflow资源,但我仍然不走运 快速概述所发生的情况,您可以按下按钮,然后,选定的随机图像将替换为当前图像 我想要的:能够按下一个按钮,然后它将继续在随机图像中循环“x”次 我的代码: 函数im

我正在努力创建一个随机图像生成器,用Javascript显示随机图像。我已经能够通过Javascript数学和使用随机变量使其显示随机图像。但遗憾的是,我还没有资格让我的代码自己重复

我知道这可能非常简单,但正如你所知,我们都从某个地方开始。我已经尽了最大努力压缩我的代码,我也查看了其他stackoverflow资源,但我仍然不走运

快速概述所发生的情况,您可以按下按钮,然后,选定的随机图像将替换为当前图像

我想要的:能够按下一个按钮,然后它将继续在随机图像中循环“x”次

我的代码:

函数imgRandom(){
var myImages1=新数组();
myImages1[1]=“images/Random/Icon1.png”;
myImages1[2]=“images/Random/Icon2.png”;
myImages1[3]=“images/Random/Icon3.png”;
myImages1[4]=“images/Random/Icon4.png”;
myImages1[5]=“images/Random/Icon5.png”;
myImages1[6]=“images/Random/Icon6.png”;
myImages1[7]=“images/Random/Icon7.png”;
myImages1[8]=“images/Random/Icon8.png”;
myImages1[9]=“images/Random/Icon9.png”;
myImages1[10]=“images/Random/Icon10.png”;
myImages1[11]=“images/Random/Icon11.png”;
myImages1[12]=“images/Random/Icon12.png”;
myImages1[13]=“images/Random/Icon13.png”;
myImages1[14]=“images/Random/Icon14.png”;
myImages1[15]=“images/Random/Icon15.png”;
myImages1[16]=“images/Random/Icon16.png”;
myImages1[17]=“images/Random/Icon17.png”;
myImages1[18]=“images/Random/Icon18.png”;
myImages1[19]=“images/Random/Icon19.png”;
myImages1[20]=“images/Random/Icon20.png”;
myImages1[21]=“images/Random/Icon21.png”;
myImages1[22]=“images/Random/Icon22.png”;
myImages1[23]=“images/Random/Icon23.png”;
var rnd=Math.floor(Math.random()*myImages1.length);
如果(rnd==0){
rnd=1;
}
document.getElementById(“gen img”).src=myImages1[rnd];
}



我相信你想要的是
循环。让我用您的代码演示:

var count = 10; //number of times to run the for loop
for (i = 0; i < count; i++){
    var rnd = Math.floor(Math.random() * myImages1.length);
        if (rnd == 0) {
            rnd = 1;
        }

    document.getElementById("gen-img").src = myImages1[rnd];
}
var计数=10//运行for循环的次数
对于(i=0;i

上述代码将运行随机位10次(=10个图像)。现在,我还没有测试过它,但我相信图像会很快闪过。另外,与您可能想阅读的有关Javascript的问题无关。

我使用了一种可能的方法对您的代码进行了一些重构,这里是重点:

我评论了一些解释

/* some flags you can set */
var timesTocycle = 10;
var totalImagesToCreate = 23;
var timeBetweenCycle = 3000;

/* global variables */
var allMyImages = [];
var timesCycled = 0;

/* 
    function to create your images path. 
  Called once when you load your page.
*/
function createMyImages(total) {
  for (var i=0; i<total;i++) {
    var imageNumber = i+1;
    var path = getImagePath(imageNumber);
    allMyImages.push(path);
  }
}

/* separated your path getter */
function getImagePath(imageNumber) {
    return "images/Random/Icon" + imageNumber + ".png";
}

/* this is the function called when you press the button and when one cycle ends */
function triggerRandomImage() {
  if (timesCycled >= timesTocycle) return;
  setTimeout(displayRandomImage, timeBetweenCycle);
}

/* random integer javascript function */
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;

}

/* function called on setTimeout */
function displayRandomImage() {

  var rnd = getRandomInt(0,allMyImages.length-1);
  var imageToDisplayPath = allMyImages[rnd];
    document.getElementById("gen-img").src = imageToDisplayPath;
  timesCycled++;
  triggerRandomImage();

  /* debug info */
  document.getElementById('info').innerText = "(showing: " + imageToDisplayPath + ", cycle: " + timesCycled + ", max: " + timesTocycle + ")";
}


/* call this function to populate the allMyImages array */
createMyImages(totalImagesToCreate);
/*您可以设置的一些标志*/
var-timesTocycle=10;
var totalImagesToCreate=23;
var timeBetweenCycle=3000;
/*全局变量*/
var allMyImages=[];
var timesCycled=0;
/* 
函数创建图像路径。
加载页面时调用一次。
*/
函数createMyImages(总计){
对于(var i=0;i=timesTocycle)返回;
设置超时(显示随机图像,timeBetweenCycle);
}
/*随机整数javascript函数*/
函数getRandomInt(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
/*函数在setTimeout时调用*/
函数displayRandomImage(){
var rnd=getRandomInt(0,allMyImages.length-1);
var imageToDisplayPath=allMyImages[rnd];
document.getElementById(“gen img”).src=imageToDisplayPath;
时间循环++;
triggerRandomImage();
/*调试信息*/
document.getElementById('info').innerText=“(显示:“+imageToDisplayPath+”,循环:“+timesCycled+”,最大:“+timesTocycle+”)”;
}
/*调用此函数以填充allMyImages数组*/
createMyImages(totalImagesToCreate);

java!=javascriptHi在那里!谢谢你的回答,我相信你是正确的,但遗憾的是输出似乎没有任何效果,因此不会加载任何图像,谢谢你尽最大努力,我会尽我最大的努力使用这个。是否有其他可能或原因导致它无法工作?您是否实际调用过
imgRandom()
函数?除非调用该函数,否则这些代码都不会执行。您好,谢谢您的回复!,我可以问一下我的图片列表放在哪里吗?不客气。它是在
createMyImages
方法中生成的。这个函数用你的路径序列填充
allMyImages
数组:images/Random/Icon1.png,images/Random/Icon2.png,images/Random/Icon3.png…嗨,mrlew,非常感谢你在帮助我方面所做的努力,我知道你可能比我先进得多,很高兴看到你的慷慨。我还有最后一个问题,有没有办法重复这个按钮?因为一旦点击它,您需要刷新代码才能再次执行,非常感谢您。-DavidNo problem,@BeastFox,但您的意思是在所有循环完成后?正确,在所有循环完成后单击按钮@MrLew后,您需要刷新页面以再次使用该按钮进行输出。