遍历js对象属性

<script type="text/javascript">
    
var p = {
    a:'a',
    e:{
        a:'a',
        c:'c'
    },
    b:'1',
    c:{
        a:2,
        x:'fffff',
        y:{
            ee:'fff',
            f:200
        }
    }
} ; 

//遍历js对象属性
var ObjInfo = {
    /**
    @param obj 要遍历的对象
    @param placeholder 占位符,排版用,如空格
    */
    info : function(obj,placeholder){
        return ObjInfo._info(obj,'',placeholder) ; 
    } ,
    /**
    @param obj 要遍历的对象
    @param tmpPlaceholder 占位符,排版用(初始向后移动的位置)
    @param placeholder 占位符,排版用
    */
    _info : function(obj,tmpPlaceholder,placeholder){
        var r = '' ; 
        for(var i in obj){
            if( ObjInfo.hasChild(obj[i]) ){
                r += ObjInfo.getObjDesc(i, ObjInfo._info(obj[i], tmpPlaceholder+placeholder, placeholder), tmpPlaceholder) ; 
            }else {
                r += ObjInfo.getFieldDesc(i, obj[i], tmpPlaceholder) ; 
            }
        }
        return r ; 
    } ,
    hasChild : function(obj){
    

if( typeof(obj) != 'object' ){
return false ;
}

for(var j in obj){
            return true ; 
        }
        return false ; 
    } , 
    getFieldDesc : function(k,v,tmpPlaceholder){
        return tmpPlaceholder+k+':'+v+'\n' ; 
    } , 
    getObjDesc : function(k,v,tmpPlaceholder){
        return tmpPlaceholder+k+':{\n'+v+tmpPlaceholder+'}\n' ; 
    }
} ; 

alert(ObjInfo.info(p,'    '));



</script>

 

posted @ 2014-11-06 16:38  行-云  阅读(360)  评论(0编辑  收藏  举报