遍历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>
时间: 2024-10-10 18:15:53

遍历js对象属性的相关文章

IOS遍历未知对象属性、函数

转:http://blog.csdn.net/chaoyuan899/article/details/24399761 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

js对象属性 通过点(.) 和 方括号([]) 的不同之处

//    js对象属性 通过点(.) 和 方括号([]) 的不同之处 //    1.点操作符: 静态的.右侧必须是一个以属性名称命名的简单标识符.属性名用一个标识符来表示.标识符必须直接出现再js程序中, //它们不是数据类型,因此程序无法修改它们. //    2.中括号操作符: 动态的.方括号里必须是一个计算结果为字符串的表达式,属性名通过字符串表示.字符串是js的数据类型, //再程序运行时可以修改和创建它们. // 主要有以下区别:     //1.[]--可以用变量作为属性名或访问

js对象-属性遍历

为了加强js对象的认知,又刷了一题. 直接上题目: 找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)1.返回数组,格式为 key: value2.结果数组不要求顺序 示例: //输入 var C = function() {this.foo = 'bar'; this.baz = 'bim';}; C.prototype.bop = 'bip'; iterate(new C()); //输出 ["foo: bar", "baz: bim&quo

js 对象属性遍历

function 对象属性遍历(){ var obj = {x:1,y:2,c:3};for (var name in obj){ alert ( obj[name] )} } function 数组(){ var 数组=[1,2,3,[1,2,4,5,7,8],4,5]; //数组嵌套数组 var 数组2=[ {x:100}, 2, [7,8,9], function(){ return 999; }(), "abc" ] var arr =new Array(10); arr[20

js对象属性的命名规则

JS标识符的命名规则,即变量的命名规则: 标识符只能由字母.数字.下划线和'$'组成 数字不可以作为标识符的首字符 对象属性的命名规则 通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括只包含空格的字符串和空字符串): 通过.操作符为对象添加属性时,属性名称必须是合法的标识符名称: 如果属性名包含非法的标识符字符,则只能采用obj["propertyName"]的形式: 如果属性名是合法的标识符,读取时即可以采用obj.propertyName,也可以采用obj["

JS对象属性中get/set与getter/setter是什么

在js属性描述符这部分有几个较难理解的名词概念,本文旨在描述对它们的理解,主要包括:[[Get]]/[[Put]].get/set.getter/setter几个概念的阐述,数据属性和访问器属性. 属性 首先我们要搞清楚属性的概念,属性是存储在特定命名位置的值,是对象的内容,属性并不直接存储在对象容器内部.属性有两种类型:数据属性和访问器属性.属性具备了属性描述符,用来描述属性拥有的特性. 属性描述符 属性描述符用来描述属性特性的(只有在内部才能用的特性),配置属性是否可读,是否可写,是否可枚举

js对象属性特征

enumerable和configurable (function(){ 'use strict'; var point={x:1,y:2,z:3}; Object.defineProperty(point,'x',{ enumerable:false,//对象属性是否可枚举 configurable:false //对象属性是否可配置,不能删除,注意值是可以修改的 }); delete point.x;//x属性不可配置,所以x属性没有被删除,在严格模式下会抛出错误,非严格模式忽略 conso

js对象属性的获取遍历

for-in循环会枚举一个对象的所有可枚举属性,并将属性名赋值给一个变量: es5引入Object.keys()方法,可以获取可枚举属性的名字的数组: for-in循环返回的和Object.keys()返回的可枚举属性有一个区别,for-in循环同时也会遍历原型属性,而Object.keys()只返回自有属性:

JS对象属性

1.数据属性 可以是js基本数据类型,对象类型,以$开始的属性表示私有属性, 具有value,可写性,可配置性(通过自有的方法配置),可枚举性,分别通过属性描述符value,writeable,configurable,enumerable标示 2.存取器属性(类似于面向对象语言中的方法) 具有读取,写入,可配置性(通过自有的方法配置),可枚举性(外界访问),通过set,get设置writeable,configurable,enumerable set setName(){}, get get