检查未定义的数组

时间:2015-02-25 01:26:42

标签: javascript arrays multidimensional-array jagged-arrays

我有一个多维数组“questArray”,其索引仅从0到4开始。索引中的数据如下所示

questArray[0][0]['q_sec']=1
questArray[1][0]['q_sec']=2
questArray[2][0]['q_sec']=3
questArray[3][0]['q_sec']=4
questArray[4][0]['q_sec']=5

现在,我有一个迭代40次的for循环。现在 在这个for循环中我正在使用if块来检查a 具有上述数组的某些条件如下:

for(var secCnt=1;secCnt<=5;secCnt++){
  for(var noCoun=0;noCoun<40;noCoun++){
     if (secCnt == questArray[noCoun][0]['q_sec']){
       //some code here
       alert('1');
     }
  }
}

我的问题是,在内部循环中,当'noCoun'计数器的值大于4时,代码不起作用,因为没有索引大于4的'questArray'。我如何检查这个条件。< / p>

我尝试了以下内容:

if (typeOf questArray[noCoun][0]['q_sec'] !== undefined){
         if (secCnt == questArray[noCoun][0]['q_sec']){
           //some code here
           alert('1');
         }
}

if (typeOf questArray[noCoun][0]['q_sec'] !== 'undefined'){
         if (secCnt == questArray[noCoun][0]['q_sec']){
           //some code here
           alert('1');
         }
}


if (questArray[noCoun][0]['q_sec'] !== 'null'){
         if (secCnt == questArray[noCoun][0]['q_sec']){
           //some code here
           alert('1');
         }
}

if (questArray[noCoun][0]['q_sec'] !== ''){
         if (secCnt == questArray[noCoun][0]['q_sec']){
           //some code here
           alert('1');
         }
}

但上面的代码都没有。希望你理解我的问题。请帮忙。谢谢你提前

2 个答案:

答案 0 :(得分:0)

这就是我要做的,

for(var secCnt=1;secCnt<=5;secCnt++){
  for(var noCoun=0;noCoun<40;noCoun++){
     if (questArray[noCoun] && secCnt == questArray[noCoun][0]['q_sec']){
       //some code here
       console.log('1');
     }
  }
}

基本上questArray[noCoun]检查它是否存在,然后检查下一个条件,否则短路......

编辑:

要非常安全,你也可以

if (questArray && questArray[noCoun] && questArray[noCoun][0] && secCnt == questArray[noCoun][0]['q_sec']){

答案 1 :(得分:0)

for(var secCnt=1;secCnt<=5;secCnt++){
  for(var noCoun=0;noCoun<40;noCoun++){
     if (noCoun < questArray.length && secCnt == questArray[noCoun][0]['q_sec']){
       //some code here
       alert('1');
     }
  }
}