Javascript 使用for循环压缩代码
我有下面的代码,我想把它压缩成一个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
总共有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”]
,但我同意数组会更好;)啊,我不知道!但这可能不是最佳实践?(性能方面)我会说这不是最佳实践,没有给出理由。这只是一种令人不快的编码方式,也是我们使用数组的原因!但是,仍然很容易知道。