Javascript 如何使用条件循环函数
我已经实现了两个div类box和box2,box2可以拖动到任意三个div类box。类框包含从数组中随机选择的值,类框2包含其显示的对应图像,以便可以将其拖动到任何类框中 我已将相应的图像存储在tempimages数组中,并尝试在drop()函数中检查tempimages==0,以便一旦值超过计数器,就从数组项中获取值并填充类框 我不能做上述循环 如何用值重新填充框并重复此过程 我如何做到这一点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'
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;