Javascript中的for循环不一致/被忽略?

Javascript中的for循环不一致/被忽略?,javascript,arrays,xml,for-loop,Javascript,Arrays,Xml,For Loop,我有一个for循环,循环遍历一些xml。它顺利通过了大约110次,然后令人费解的是,for循环中的if语句似乎被忽略了。任何帮助都将不胜感激 <script> for (let z=0; z<agearray.length;z++){ for (let p=0; p<samplearray.length;p++){ console.log((samplearray[p])); if(typeof(samplearr

我有一个for循环,循环遍历一些xml。它顺利通过了大约110次,然后令人费解的是,for循环中的if语句似乎被忽略了。任何帮助都将不胜感激

<script>
  for (let z=0; z<agearray.length;z++){
      for (let p=0; p<samplearray.length;p++){
          console.log((samplearray[p]));

          if(typeof(samplearray[p]==="object")){

              if (samplearray[p].getAttribute("age")===agearray[z]){
                  var qwerty=samplearray[p];
                  console.log("test");
                  ///blah blah blah, if statement continues
              }
          } 
       }
   }
</script>
因此,循环成功地迭代了很多次,测试语句按预期记录。一旦到达第111次迭代,我会得到错误消息uncaughttypeerror:cannotreadproperty'getAttribute'在第二个if语句中未定义。如果我是正确的,我会认为第二条If语句将无法执行,除非定义了samplearray[p]。循环可以正确地跳过其他未定义的对象,所以我被难住了


有什么想法吗?

根据您所附的代码片段,您没有正确检查if语句

你应该使用

if(typeof samplearray[p]==="object"){
而不是

 if(typeof(samplearray[p]==="object")){

您的条件基本上是检查条件语句samplearray[p]==object,它将在结果中给出布尔值。

我认为您有语法错误 采样光线[p]==对象的类型。这将始终计算为在if语句中接受的布尔值。
您应该执行采样光线[p]==对象的类型。现在,如果samplearray[p]未定义,则在if语句中不会接受它。谢谢我不知道为什么它每次都停在一条特定的线路上,但它现在起作用了。