json是数组时attr是索引,json不是数组时,attr是键

解决方案 »

  1.   

    你完全可以直接写成
    for(var attr in json)
      

  2.   

    他是在告诉 你 虽然在for里申明的变量 其实在for外也可以访问 有时候对于那些有块级作用域语言来说这样更明了一点
      

  3.   

    for in 也可以是对对象进行遍历,当对对象遍历时,遍历得到的是对象的属性
      

  4.   

    for ... in 是遍历对象的属性,如:
    var obj = {aName:'aValue',bName:'bValue'};
    // 遍历obj的属性
    for (var name in obj) {
        console.log(name); // 属性名,会输出 aName和bName
        console.log(obj[name]); // 会输出属性值,aValue和bValue
    }也可以将变量name提前声明,正如楼主的例子中所看到的,如:
    var obj = {aName:'aValue',bName:'bValue'};
    var name = '';   // 当然,初不初始化都可以,不过给变量初始化是一个好习惯
    for (name in obj) {
        console.log(name); // 属性名,会输出 aName和bName
        console.log(obj[name]); // 会输出属性值,aValue和bValue
    }
      

  5.   

    for (var i in array)其中i可以 是数组的下标,或者是json对象的KEY。
    普通的for循环是不能遍历json的 。
    但是这个方法只能遍历数组和json 。
    不能遍历element集合。