Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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数组_Javascript_Jquery_Arrays_Loops - Fatal编程技术网

使用Javascript for循环创建Javascript数组

使用Javascript for循环创建Javascript数组,javascript,jquery,arrays,loops,Javascript,Jquery,Arrays,Loops,我有一系列的信息,我希望通过循环这些信息来缩小规模。以下是正在运行的原始代码: $('#M1s1').css({'visibility': M1s1v}); $('#M1s2').css({'visibility': M1s2v}); $('#M1s3').css({'visibility': M1s3v}); $('#M1s4').css({'visibility': M1s4v}); $('#M1s5').css({'visibility': M1s5v}); $('#M1s6').css(

我有一系列的信息,我希望通过循环这些信息来缩小规模。以下是正在运行的原始代码:

$('#M1s1').css({'visibility': M1s1v});
$('#M1s2').css({'visibility': M1s2v});
$('#M1s3').css({'visibility': M1s3v});
$('#M1s4').css({'visibility': M1s4v});
$('#M1s5').css({'visibility': M1s5v});
$('#M1s6').css({'visibility': M1s6v});
$('#M1s7').css({'visibility': M1s7v});

$('#M2s1').css({'visibility': M2s1v});
$('#M2s2').css({'visibility': M2s2v});
$('#M2s3').css({'visibility': M2s3v});
$('#M2s4').css({'visibility': M2s4v});
$('#M2s5').css({'visibility': M2s5v});
$('#M2s6').css({'visibility': M2s6v});
$('#M2s7').css({'visibility': M2s7v});

$('#M3s1').css({'visibility': M3s1v});
$('#M3s2').css({'visibility': M3s2v});
$('#M3s3').css({'visibility': M3s3v});
$('#M3s4').css({'visibility': M3s4v});
$('#M3s5').css({'visibility': M3s5v});
$('#M3s6').css({'visibility': M3s6v});
$('#M3s7').css({'visibility': M3s7v});

$('#M4s1').css({'visibility': M4s1v});
$('#M4s2').css({'visibility': M4s2v});
$('#M4s3').css({'visibility': M4s3v});
$('#M4s4').css({'visibility': M4s4v});
$('#M4s5').css({'visibility': M4s5v});
$('#M4s6').css({'visibility': M4s6v});
$('#M4s7').css({'visibility': M4s7v});

$('#M5s1').css({'visibility': M5s1v});
$('#M5s2').css({'visibility': M5s2v});
$('#M5s3').css({'visibility': M5s3v});
$('#M5s4').css({'visibility': M5s4v});
$('#M5s5').css({'visibility': M5s5v});
$('#M5s6').css({'visibility': M5s6v});
$('#M5s7').css({'visibility': M5s7v});
下面是我创建的for循环,旨在减少代码长度和键入错误的可能性:

// set smc array(#M1s1, #M1s2, #M1s3, etc.)
var smc = [];
for (m = 1; m < 6; m++) {
  for (s = 1; s < 8; s++) {
    var smc[] = '#M' + m + 's' + s;
  }
}

// set smcv array(#M1s1v, #M1s2v, #M1s3v, etc.)
var smcv = [];
for (mv = 1; mv < 6; mv++) {
  for (sv = 1; sv < 8; sv++) {
    var smcv[] = '#M' + mv + 's' + sv + 'v';
  }
}

// loop to set visibility of small circles
for (i = 0; i < 35; i++) {
  $(smc[i]).css({'visibility': smcv[i]});
}
//设置smc数组(#M1s1、#M1s2、#M1s3等)
var smc=[];
对于(m=1;m<6;m++){
对于(s=1;s<8;s++){
var smc[]='#M'+M+'s'+s;
}
}
//设置smcv阵列(M1s1v、M1s2v、M1s3v等)
var smcv=[];
对于(mv=1;mv<6;mv++){
对于(sv=1;sv<8;sv++){
var smcv[]='#M'+mv+'s'+sv+'v';
}
}
//循环以设置小圆圈的可见性
对于(i=0;i<35;i++){
$(smc[i]).css({'visibility':smcv[i]});
}
我对javascript循环非常陌生,我觉得我可能忽略了一些基本的东西,甚至是某种语法错误,但我无法指出问题所在。任何指导或帮助都将不胜感激

更新

以下是我的问题的最终解决方案:

//set smc array(#M1s1, #M1s2, #M1s3, etc.)
    var smc = [];
        for (m = 1; m < 6; m++) {
            for (s = 1; s < 8; s++) {
                smc.push('#M' + m + 's' + s);
            }
        }

//set smcv array(#Ms1v, #M1s2v, #M1s3v, etc.)
    var smcv = [];
        for (mv = 1; mv < 6; mv++) {
            for (sv = 1; sv < 8; sv++) {
                smcv.push('M' + mv + 's' + sv + 'v');
            }
        }

//loop to set visibility of small circles
    for (i = 0; i < 35; i++) {
        $(smc[i]).css({'visibility': window[smcv[i]]});
    }
//设置smc数组(#M1s1、#M1s2、#M1s3等)
var smc=[];
对于(m=1;m<6;m++){
对于(s=1;s<8;s++){
smc推力(“#M”+M+“s”+s);
}
}
//设置smcv阵列(Ms1v、M1s2v、M1s3v等)
var smcv=[];
对于(mv=1;mv<6;mv++){
对于(sv=1;sv<8;sv++){
smcv推力('M'+mv+'s'+sv+'v');
}
}
//循环以设置小圆圈的可见性
对于(i=0;i<35;i++){
$(smc[i]).css({'visibility':window[smcv[i]});
}

您不能使用
var smc[]=“something”
将值推送到数组中

使用
smc.push('something')
您不能使用
var smc[]='something'将值推送到数组中

使用smc.push('something')

假设您有一个二维数组,5 x 7代表M,s包含将计算为真/假的内容(布尔值,0,1,空字符串…)

var数据=[];
...
对于(var M=0;M

若你们是维度的百分之一,你们可以通过使用硬编码的数字而不是长度来“优化”。

假设你们有一个二维数组,5 x 7代表M,s包含一些将计算为真/假的值(布尔值,0,1,空字符串…)

var数据=[];
...
对于(var M=0;M

如果您是尺寸的百分之一,您可以使用硬编码数字而不是长度来“优化”。

假设
M1s1v
M1s2v
,。。。。值来自json变量,如下所示:

var x = {
  M1s1v : "hidden",
  M1s2v : "visibile",
  ...
}
for (m = 1; m < 6; m++) {
    for (s = 1; s < 8; s++) {
        $('#M' + m + 's' + s).css({'visiblity':x['M'+m+'s'+s+'v']});
    }
}
然后您可以将代码缩短为以下内容:

var x = {
  M1s1v : "hidden",
  M1s2v : "visibile",
  ...
}
for (m = 1; m < 6; m++) {
    for (s = 1; s < 8; s++) {
        $('#M' + m + 's' + s).css({'visiblity':x['M'+m+'s'+s+'v']});
    }
}
(m=1;m<6;m++)的
{
对于(s=1;s<8;s++){
$('#M'+M+'s'+s).css({'visibility':x['M'+M+'s'+s+'v']});
}
}

希望有帮助。

让我们说一下
M1s1v
M1s2v
,。。。。值来自json变量,如下所示:

var x = {
  M1s1v : "hidden",
  M1s2v : "visibile",
  ...
}
for (m = 1; m < 6; m++) {
    for (s = 1; s < 8; s++) {
        $('#M' + m + 's' + s).css({'visiblity':x['M'+m+'s'+s+'v']});
    }
}
然后您可以将代码缩短为以下内容:

var x = {
  M1s1v : "hidden",
  M1s2v : "visibile",
  ...
}
for (m = 1; m < 6; m++) {
    for (s = 1; s < 8; s++) {
        $('#M' + m + 's' + s).css({'visiblity':x['M'+m+'s'+s+'v']});
    }
}
(m=1;m<6;m++)的
{
对于(s=1;s<8;s++){
$('#M'+M+'s'+s).css({'visibility':x['M'+M+'s'+s+'v']});
}
}

希望有帮助。

@dvenkatsagar-数字将通过加法运算符强制转换为字符串。您需要了解-特别是在您的情况下.push方法。。。然后您需要意识到变量
M1s1v
与字符串
“M1s1v”
不同。。。但是名为
M1s1v
的全局变量可以像
window['M1s1v']
M1s1v
一个具有特定值的变量???@dvenkatsagar-数字将通过加法运算符强制为字符串。您需要了解-特别是在您的情况下的.push方法。。。然后您需要意识到变量
M1s1v
与字符串
“M1s1v”
不同。。。但是名为
M1s1v
的全局变量可以像
window['M1s1v']
一样访问
M1s1v
是一个具有特定值的变量吗?这肯定是我想要的方向。所有数组都填充得很好,但是现在我的循环无法正常工作。循环将所有可见性默认设置为“可见”。我认为这是因为
smcv[]
实际上是一个变量名数组,看起来它们可能被存储为字符串。有解决办法吗?我现在有办法了。答案已经用解决方案更新了。这绝对是我期待的方向。所有数组都填充得很好,但是现在我的循环无法正常工作。循环将所有可见性默认设置为“可见”。我认为这是因为
smcv[]
实际上是一个变量名数组,看起来它们可能被存储为字符串。有解决办法吗?我现在有办法了。答案已使用解决方案更新。