Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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_Jquery_Html - Fatal编程技术网

Javascript 如何使用条件循环函数

Javascript 如何使用条件循环函数,javascript,jquery,html,Javascript,Jquery,Html,我已经实现了两个div类box和box2,box2可以拖动到任意三个div类box。类框包含从数组中随机选择的值,类框2包含其显示的对应图像,以便可以将其拖动到任何类框中 我已将相应的图像存储在tempimages数组中,并尝试在drop()函数中检查tempimages==0,以便一旦值超过计数器,就从数组项中获取值并填充类框 我不能做上述循环 如何用值重新填充框并重复此过程 我如何做到这一点 var项目=[ {label:'1:40',url:'1.png'}, {label:'2:20'

我已经实现了两个div类box和box2,box2可以拖动到任意三个div类box。类框包含从数组中随机选择的值,类框2包含其显示的对应图像,以便可以将其拖动到任何类框中

我已将相应的图像存储在tempimages数组中,并尝试在drop()函数中检查tempimages==0,以便一旦值超过计数器,就从数组项中获取值并填充类框

我不能做上述循环

如何用值重新填充框并重复此过程

我如何做到这一点

var项目=[
{label:'1:40',url:'1.png'},
{label:'2:20',url:'2.png'},
{label:'3:50',url:'3.png'},
{label:'4:45',url:'4.png'},
{label:'5:35',url:'5.png'},
{label:'6:10',url:'6.png'},
{label:'7:15',url:'7.png'},
{label:'8:10',url:'8.png'},
{label:'9:30',url:'9.png'},
{标签:'10:40',url:'10.png'},
{标签:'11:20',url:'11.png'}
]
var tempimages=[];
var array2=[];
array2=items.slice();
var len=阵列2.长度;
控制台日志(len);
var项目;
函数rvalue(){
ptags=document.querySelectorAll('[name=“values”]');
控制台日志(项目);
控制台日志(array2);
控制台日志(ptags);
控制台日志(ptag)
对于(var指数=0;指数<3;指数++){
randomIndex=Math.floor(Math.random()*array2.length);
项目=阵列2[随机索引];
ptags[index].textContent=item.label;
push({data:item,index:randomIndex});
ptags[index].dataset.itemIndex=randomIndex;
}
var tlen=tempimages.length;
console.log(临时映像[0])
console.log(tempimages);
控制台日志(tlen);
}
函数displayAllImages(){
如果(tempimages.length==0){
右值();
//返回;
}
item=tempimages.shift();
image=document.getElementById('slide');
image.src=item.data.url;
image.dataset.itemIndex=item.index;
};
$(函数(){
右值();
显示图像();
}); 
功能allowDrop(ev){
ev.preventDefault();
}
功能阻力(ev){
ev.dataTransfer.setData(“文本”,ev.target.id);
}
功能下降(ev){
ev.preventDefault();
console.log(ev.src元素);
var data=ev.dataTransfer.getData(“文本”);
var el=document.getElementById(数据);
//警报(数据);
//警报(el);
var x=document.getElementById(“幻灯片”).dataset.itemIndex;
var y=ev.target.dataset.itemIndex;
//警报(“x=>”+x+“y=>”+y);
如果(x==y){
el.parentNode.removeChild;
ev.currentTarget.style.backgroundColor='初始';
var pParagraph=ev.currentTarget.firstElementChild;
ev.currentTarget.removeChild(pParagraph);
item=这个.item;
var arrayvalue=item.dataindex;
阵列2.拼接(阵列值,1);
控制台日志(array2);
显示图像();
console.log(tempimages.length);
警惕(“成功”);
如果(tempimages.length==0){
警报(“不再有图像”);
右值();
}
}否则{
警惕(“错误的地方”);
}
}
.box{
宽度:35px;
高度:35px;
显示:内联块;
边界半径:5px;
边框:2倍实心#333;
边框颜色:#e600;
保证金:-2px;
边界半径:10%;
背景色:#bfff80;
垂直对齐:中间对齐;
}
.box2{
浮动:左;
宽度:30px;
高度:30px;
浮动:左;
利润率最高:3%;
垫面:2%;
边框:1px实心#000066;
}


如果您想使用条件循环函数,可以使用JavaScript并在函数技术中使用函数

语法是:

function function () {
    if (condition) {
        // Your code

        // Call the function
        function();
    }
};

function();
例如:

var编号=0;
函数writeNumbers(){
如果(数字<11){
文件。写(数字+“
”); 数++ writeNumbers(); } }; //调用函数
writeNumbers()
您应该使用
递归函数
技术

递归是函数本身被直接或间接调用的过程。递归允许您编写一些非常优雅的代码。但是当使用递归时,您需要注意陷阱

例如:我们假设这个循环从0开始到9(10次)


这可能是因为目标元素不再位于DOM中 图像标记由函数“drop()删除”

功能下降(ev){
如果(x==y){

//el.parentNode.removeChild;添加代码段时,会出现一个
tidy
按钮-请使用它使代码可读
function function (initValue) {    
    if (initValue > 10) {
          return;
    }
    function(initValue++);
};
function drop(ev){
 if(x==y){
  // el.parentNode.removeChild; <-- try to remove this line
 }
}
image = document.getElementById('slide'); //<--- try not to remove this target
image.src = item.data.url;
image.dataset.itemIndex = item.index;