Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 使用for循环压缩代码_Javascript_Jquery_Loops - Fatal编程技术网

Javascript 使用for循环压缩代码

Javascript 使用for循环压缩代码,javascript,jquery,loops,Javascript,Jquery,Loops,我有下面的代码,我想把它压缩成一个for循环,但不知道如何压缩。我试着查看其他帖子,但被卡住了 总共有15个数字,因此类似于for(i=1;i的代码将检查3个变量的值: 复选框,i&save,而不是一个 一种更好的方法是将所有数据放在一个数组中,然后进行检查 如果您有一个数组:checksquaresave。那么您可以用您的值填充它: checksquaresave[0] =value0, checksquaresave[1] =value1 , ... 在此之后,代码将非常简单: for

我有下面的代码,我想把它压缩成一个for循环,但不知道如何压缩。我试着查看其他帖子,但被卡住了


总共有15个数字,因此类似于for(i=1;i的代码将检查3个变量的值: 复选框,i&save,而不是一个

一种更好的方法是将所有数据放在一个数组中,然后进行检查

如果您有一个数组:checksquaresave。那么您可以用您的值填充它:

checksquaresave[0] =value0, checksquaresave[1] =value1 , ... 
在此之后,代码将非常简单:

for (i = 1; i <= 15; i++){
    if(checksquaresave[i] =="true"){
        $("#checksquare" + i).toggleClass("checksquareON");
    }   
}  

同样,但我认为最好的方法是只使用数组。(cfr。)

您现在正在执行的代码将检查3个变量的值: 复选框,i&save,而不是一个

一种更好的方法是将所有数据放在一个数组中,然后进行检查

如果您有一个数组:checksquaresave。那么您可以用您的值填充它:

checksquaresave[0] =value0, checksquaresave[1] =value1 , ... 
在此之后,代码将非常简单:

for (i = 1; i <= 15; i++){
    if(checksquaresave[i] =="true"){
        $("#checksquare" + i).toggleClass("checksquareON");
    }   
}  

同样,但我认为最好的方法是只使用一个数组。(cfr。)

你最好使用一个数组
checksquaresave
,并将你的
checksquareXsave
全部放入其中,然后像你现在这样循环数组。这需要一点重构,但会为你以后节省一些痛苦

for (i = 1; i <= 15; i++){
   if(checksquare[i] == 'true'){
       $("#checksquare" + i).toggleClass("checksquareON");
   }
}

对于(i=1;i您最好使用一个数组
checksquaresave
并将所有的
checksquareXsave
放入其中,然后像您正在做的那样循环该数组。这需要一点重构,但以后会省去一些麻烦

for (i = 1; i <= 15; i++){
   if(checksquare[i] == 'true'){
       $("#checksquare" + i).toggleClass("checksquareON");
   }
}

for(i=1;i如果您的变量在全局范围内,则此选项应有效:

    for (i = 1; i <= 15; i++){
        if(window['checksquare' + i + 'save']=="true"){
            $("#checksquare" + i).toggleClass("checksquareON");
        }
        else{
            $("#checksquare" + i).removeClass("checksquareON");
        }
    }   

for(i=1;i如果您的变量在全局范围内,则此选项应有效:

    for (i = 1; i <= 15; i++){
        if(window['checksquare' + i + 'save']=="true"){
            $("#checksquare" + i).toggleClass("checksquareON");
        }
        else{
            $("#checksquare" + i).removeClass("checksquareON");
        }
    }   
for(i=1;i当只显示您拥有的代码时,我能想到的唯一解决方案是使用
eval
。尽管如此,忘记我说过的,因为您不想尝试该解决方案。拥有15个类似命名的变量可能是一个问题。您可以使用
window.variableName
window[“variableName”]
在“checksquaresave”变量为全局变量时检索它们。在这种情况下,它将如下所示:

if (window["checksquare" + i + "save"] == "true")
否则,最好检查checksquare###save变量的创建,并将它们设置为数组而不是单独的变量。然后,您的代码可能如下所示:

    for (i = 1; i <= 15; i++){
        if(checksquaresave[i] =="true"){
            $("#checksquare" + i).toggleClass("checksquareON");
        }   
    }   
for(i=1;i当只显示您拥有的代码时,我能想到的唯一解决方案是使用
eval
。尽管如此,忘记我说过的,因为您不想尝试该解决方案。拥有15个类似命名的变量可能是一个问题。您可以使用
window.variableName
window[“variableName”]
在“checksquaresave”变量为全局变量时检索它们。在这种情况下,它将如下所示:

if (window["checksquare" + i + "save"] == "true")
否则,最好检查checksquare###save变量的创建,并将它们设置为数组而不是单独的变量。然后,您的代码可能如下所示:

    for (i = 1; i <= 15; i++){
        if(checksquaresave[i] =="true"){
            $("#checksquare" + i).toggleClass("checksquareON");
        }   
    }   

for(i=1;i如果您想访问仅在运行时知道其名称的变量,可以将其存储为对象的属性

因此,如果要访问checksquare1save、checksquare2save等,可以执行以下操作:

var storage = {
    checksquare0save:true,
    checksquare1save:true,
    checksquare2save:false,
    //...other variables...
}

for (var i = 0; i < 15, i++) {
    console.log(storage["checksquare" + i + "save"])
}
var存储={
checksquare0save:true,
checksquare1save:true,
checksquare2save:false,
//…其他变量。。。
}
对于(变量i=0;i<15,i++){
console.log(存储[“checksquare”+i+“save”])
}

如果要访问仅在运行时知道其名称的变量,可以将其存储为对象的属性

因此,如果要访问checksquare1save、checksquare2save等,可以执行以下操作:

var storage = {
    checksquare0save:true,
    checksquare1save:true,
    checksquare2save:false,
    //...other variables...
}

for (var i = 0; i < 15, i++) {
    console.log(storage["checksquare" + i + "save"])
}
var存储={
checksquare0save:true,
checksquare1save:true,
checksquare2save:false,
//…其他变量。。。
}
对于(变量i=0;i<15,i++){
console.log(存储[“checksquare”+i+“save”])
}

if(checksquare+i+save==“true”){
我认为错误在于这里将checksquareXsave变量设置为数组。更容易获取其值,因为您只需执行checksquaresave[i]您能摆弄一下吗?
if(checksquare+i+save==“true”){
我认为错误在于将checksquareXsave变量设置为数组。更容易获取其值,因为您只需执行checksquaresave[i]您可以摆弄一下吗?使用我使用的数组编辑我的原始帖子,如果这样有帮助的话窗口和括号之间的
会导致语法错误。删除它就可以了。:)仍然没有告诉我它是否在全局范围内,但我认为它应该可以工作。Agrrr!Typo…现在修复。使用我使用的数组编辑我的原始帖子,如果这样有帮助的话。窗口和括号之间的
会导致语法错误。删除它就可以了。:)仍然没有告诉我它是否在全局范围内,但我认为它应该可以工作。Agrrr!打字错误…现在已修复。是的,您可以…
窗口[“checksquare”+I+“save”]
,但我同意数组会更好;)啊,我不知道!但这可能不是最佳做法?(性能方面)我会说这不是最佳实践,没有给出理由。这只是一种令人不快的编码方式,也是我们使用数组的原因!但是,仍然很容易知道。是的,你可以…
窗口[“checksquare”+I+“save”]
,但我同意数组会更好;)啊,我不知道!但这可能不是最佳实践?(性能方面)我会说这不是最佳实践,没有给出理由。这只是一种令人不快的编码方式,也是我们使用数组的原因!但是,仍然很容易知道。