zoukankan      html  css  js  c++  java
  • JavaScript 中 for (var i in data) 循环数组项

    今天在改代码的时候发现有很多代码的循环是用 for(var i in data)写的,我通常都是用for(var i=0;i<data.length;i++)

    就查看了一下,原来这两个是有区别的,不能等同使用。

    <script>
    Array.prototype.test = function () { };

    function a (){
    var arr = [1, 2];
    for (var i in arr)
    {
    alert(i+"-------------"+arr[i]);
    }
    }
    function b(){
    var arr = [1, 2];
    for(var i =0;i<arr.length;i++){
    alert(i+"---------"+arr[i]);
    }
    }
    a();
    b();
    </script>

    我们看到a()会弹出三个对话框,分别是索引值:0、1还多了一个 test, 这个 test 是 Array.prototype.test 扩展得到的。

    所以不能把 for (var i in data)  当作是 for (var i = 0; i < data.length; i++) 的简写。

    参考:http://www.cftea.com/c/2014/08/6290.asp

  • 相关阅读:
    html 注释和特殊字符
    html 锚点链接
    html 链接标签
    spring 利用工厂模式解耦
    html 路径
    html 图像标签
    html div和span标签
    html 文本格式化标签
    P5358 [SDOI2019]快速查询
    luoguP2679 子串
  • 原文地址:https://www.cnblogs.com/jinling/p/5462338.html
Copyright © 2011-2022 走看看