Javascript中的for循环不一致/被忽略?
我有一个for循环,循环遍历一些xml。它顺利通过了大约110次,然后令人费解的是,for循环中的if语句似乎被忽略了。任何帮助都将不胜感激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
<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语句中不会接受它。谢谢我不知道为什么它每次都停在一条特定的线路上,但它现在起作用了。