Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Loops_Setinterval - Fatal编程技术网

如何循环到设置间隔?(使用数组)-javascript

如何循环到设置间隔?(使用数组)-javascript,javascript,arrays,loops,setinterval,Javascript,Arrays,Loops,Setinterval,在我的代码中,我试图借助Matter.js插件一次画一个矩形。我想要的效果是: 我从数据库中得到应该绘制多少个矩形(在变量entradas[]中)。但我在数组中有很多位置,其中一个表示应该画多少个矩形。我用定时器“desenha”一个接一个地画出一个矩形,直到entradas[] 我的问题是我不能循环,当它从第一行绘制所有矩形时,它从第二行绘制下一个矩形,依此类推。。现在它只从第一行绘制矩形 这就是我试图做到的代码部分: var li=1; desenha=setInterval( f

在我的代码中,我试图借助Matter.js插件一次画一个矩形。我想要的效果是: 我从数据库中得到应该绘制多少个矩形(在变量
entradas[]
中)。但我在数组中有很多位置,其中一个表示应该画多少个矩形。我用定时器“
desenha
”一个接一个地画出一个矩形,直到entradas[]

我的问题是我不能循环,当它从第一行绘制所有矩形时,它从第二行绘制下一个矩形,依此类推。。现在它只从第一行绘制矩形

这就是我试图做到的代码部分:

var li=1;
desenha=setInterval(
     function() {

           if(categoria[li]){
             entra=entradas[li];
             tex=texturas[li];
           }

           if(rects<entradas[li]){
                World.add(_world,
                    Bodies.rectangle( Math.round(Common.random(300,400)),-20,Math.round(Common.random(20,30)),Math.round(Common.random(20,30)), {
                        render: {
                         strokeStyle: '#ffffff',
                         sprite: {
                            texture: tex
                         }
                        }
                    })

            );  
            }
          }
            , 500);

contagem=setInterval( function(){
        if(rects<entradas[li]){
            rects=rects+1;

            document.getElementById("mytext").value = rects;
            rectsmoney=rects*valor[1];
            document.getElementById("mytext2").value = Math.round(rectsmoney);

       } 
       },500);

if(rects>=entradas[li]){
    rects=0;
    li++;
}
var li=1;
desenha=设定间隔(
函数(){
if(范畴[li]){
entra=entradas[li];
tex=纹理[li];
}

if(rects包装setInterval函数并给它们一个临时作用域。。 由于desenha是一个全局变量,循环时它将重新分配desenha。更好的方法是保留一个全局数组来存储间隔

(function(li) { desenha[li] =setInterval(
     function() {

           if(categoria[li]){
             entra=entradas[li];
             tex=texturas[li];
           }

           if(rects<entradas[li]){
                World.add(_world,
                    Bodies.rectangle( Math.round(Common.random(300,400)),-20,Math.round(Common.random(20,30)),Math.round(Common.random(20,30)), {
                        render: {
                         strokeStyle: '#ffffff',
                         sprite: {
                            texture: tex
                         }
                        }
                    })

            );  
            }
          }
            , 500);
         })(li);
(函数(li){desenha[li]=setInterval(
函数(){
if(范畴[li]){
entra=entradas[li];
tex=纹理[li];
}

如果(rectsCan)你发布整个循环(不仅仅是循环内部的代码),contagem做什么?@plbsam
contagem
是在
desenha
绘制一个矩形的同时更改html文件中的值。我从这个循环中没有更多内容,上面的代码是我尝试的一个。另一个是:
for(var li=1;li=entradas[li]){rects=0;}}
可能我做错了,但我不知道怎么做