代码之家  ›  专栏  ›  技术社区  ›  tags2k

使用jQuery迭代JavaScript对象的属性

  •  114
  • tags2k  · 技术社区  · 16 年前

        for (var member in obj) {
            ...
        }
    

    我只是不喜欢这样 for

    4 回复  |  直到 16 年前
        1
  •  214
  •   ozba    6 年前
    $.each( { name: "John", lang: "JS" }, function(i, n){
        alert( "Name: " + i + ", Value: " + n );
    });
    

    each

        2
  •  56
  •   ozba    6 年前

    你可以用 each

    var obj = {
        foo: "bar",
        baz: "quux"
    };
    jQuery.each(obj, function(name, value) {
        alert(name + ": " + value);
    });
    
        3
  •  9
  •   terrabruder    5 年前

    注: 大多数现代浏览器现在允许您在开发人员控制台中导航对象。这个答案已经过时了。

    此方法将遍历对象属性,并以递增的缩进将它们写入控制台:

    function enumerate(o,s){
    
        //if s isn't defined, set it to an empty string
        s = typeof s !== 'undefined' ? s : "";
    
        //if o is null, we need to output and bail
        if(typeof o == "object" && o === null){
    
           console.log(s+k+": null");
    
        } else {    
    
            //iterate across o, passing keys as k and values as v
            $.each(o, function(k,v){
    
                //if v has nested depth
               if(typeof v == "object" && v !== null){
    
                    //write the key to the console
                    console.log(s+k+": ");
    
                    //recursively call enumerate on the nested properties
                    enumerate(v,s+"  ");
    
                } else {
    
                    //log the key & value
                    console.log(s+k+": "+String(v));
                }
            });
        }
    }
    

    只需将要迭代的对象传递给它:

        var response = $.ajax({
            url: myurl,
            dataType: "json"
        })
        .done(function(a){
           console.log("Returned values:");
           enumerate(a);
        })
        .fail(function(){ console.log("request failed");});
    
        4
  •  4
  •   Rohan Kumar    10 年前

    很晚,但可以使用 Object.keys 喜欢

    var a={key1:'value1',key2:'value2',key3:'value3',key4:'value4'},
      ulkeys=document.getElementById('object-keys'),str='';
    var keys = Object.keys(a);
    for(i=0,l=keys.length;i<l;i++){
       str+= '<li>'+keys[i]+' : '+a[keys[i]]+'</li>';
    }
    ulkeys.innerHTML=str;
    <ul id="object-keys"></ul>
    推荐文章