美文网首页技术文
js:慎用for(var key in arrays)!

js:慎用for(var key in arrays)!

作者: 歇歇 | 来源:发表于2015-08-27 16:53 被阅读2865次

描述

简直是心慌慌,今天遇到一个遍历问题时,想到没用过for(var key in arrays),所以便想着用用,免得以后忘记了。
没想到,这特么给我扯犊子,明明长度是3,硬是每次都要遍历6次...

解决

我先用debugger,咳咳,半天没懂为什么已经跑完了3次循环,还在循环里。

然后用控制台输出的方法,发现了这厮原来是神探,可以把数组里莫名其妙的东西遍历出来。当然这并没什么卵用。
这是证据:

!-功能强大怪我咯

慎用,慎用!


谢谢ChronosTartaro的提点。

js代码:

window.onload=function(){
    var xml= loadXML("test.xml");
    var rows = oxml.getElementsByTagName("row");//取得xml中row节点
    console.log("rows.length="+rows.length)
    for(var key in rows){
console.log("rows["+key+"]="+key);
}
}


//解析XML不支持谷歌浏览器
var loadXML = function (xmlFile) {
    var xmlDoc;
    if(window.ActiveXObject) {
        xmlDoc =new ActiveXObject("microsoft.xmldom");         
    }else if (document.implementation && document.implementation.createDocument) {
        xmlDoc = document.implementation.createDocument('','', null);  
    }
    try{
        xmlDoc.async =false;//关闭异步执行,让页面等待xmlDoc加载完毕,再继续执行
        xmlDoc.load(xmlFile);
    }catch(e){
    alert(e);
    }
    return xmlDoc;
}

xml代码:

<?xml version="1.0" encoding="utf-8" ?>
<page>
  <header></header>
  <body>
    <row>
      <col widgetname="category" colspan="3"></col>
      <col widgetname="main_slide" colspan="6"></col>
      <col widgetname="notices" colspan="3"></col>
    </row>
    <row>
      <col widgetname="index_tab_goods" colspan="9">
        <col widgetname="main_slide" colspan="6"></col>
        <col widgetname="main_slide" colspan="6"></col>
      </col>
      <col widgetname="sales_charts" colspan="3"></col>
    </row>
    <row>
      <col widgetname="image_text_1" colspan="12"></col>
      <col widgetname="index_goods_1" colspan="12"></col>
    </row>
  </body>
  <footer></footer>
</page>

相关文章

网友评论

    本文标题:js:慎用for(var key in arrays)!

    本文链接:https://www.haomeiwen.com/subject/chvhcttx.html