递归遍历JS的对象的每个属性

原创 2015年11月21日 15:57:03

递归遍历JS的对象的每个属性

1)使用constructor

<span style="font-size:14px;">var model = {
        fullName: {
            firstName: 'paradise',
            lastName: 'fang'
        },
        age: 25,
        sex: 'female',
        array : [1,2,3]
    };
    buildModel(model);

    function buildModel(model) {
        for (var i in model) {
            if (model[i] != null) {
                if (model[i].constructor == Object) {
                    buildModel(model[i]);
                } else {
                    console.log(i + "\t" + model[i]);
                }
            }
        }
    }</span>

结果如下图:


这里使用了constructor,而不是typeof

constructor判断对象的类型,会比typeof更精确,constructor能获取一些复杂对象的类型,typeof做不到。

http://jingyan.baidu.com/article/a681b0de331a733b18434628.html

2)使用typeof

<span style="font-size:14px;">var model = {
        fullName: {
            firstName: 'paradise',
            lastName: 'fang'
        },
        age: 25,
        sex: 'female',
        array : [1,2,3]
    };
    buildModel(model);

    function buildModel(model) {
        for (var i in model) {
            if (model[i] != null) {
                if (typeof model[i] == "object") {
                    buildModel(model[i]);
                } else {
                    console.log(i + "\t" + model[i]);
                }
            }
        }
    }</span>


结果如下


版权声明:本文为博主原创文章,未经博主允许不得转载。

js 递归遍历对象、数组、属性

在前端工作时,有时我们需要遍历一些未知类型的对象。代码如下: //js遍历对象 function TraversalObject(obj) {     for (var a in obj) {   ...
  • baidu_31333625
  • baidu_31333625
  • 2017年03月17日 16:57
  • 969

js 递归遍历对象、数组、属性

在前端工作时,有时我们需要遍历一些未知类型的对象。代码如下: //js遍历对象 function TraversalObject(obj) {     for (var a in obj) {...
  • 99guo
  • 99guo
  • 2015年03月12日 17:32
  • 10142

JS遍历对象或者数组

From: http://keshion.iteye.com/blog/728122 一.纯js实现 Js代码        var obj = {"player_...
  • JoeBlackzqq
  • JoeBlackzqq
  • 2015年11月11日 16:44
  • 3483

artTemplate-3.0复杂对象的遍历与使用方法

artTemplate-3.0复杂对象的遍历与使用方法
  • sunbingzibo
  • sunbingzibo
  • 2016年10月14日 15:15
  • 5366

****ife 递归实现深度克隆(内含JS数据类型判断,对象遍历)****

*ife 递归实现深度克隆(内含JS数据类型判断,对象遍历)*今天在做2015ife的题时,感觉收获很多,对于js基本类型有了新的认识。把在研究过程中所得记录下来! 题目是: // 使用递归来实...
  • qq_27090183
  • qq_27090183
  • 2016年03月07日 23:47
  • 1296

javascript当中的无限分类递归树,今天来重写一下

为了防止标题党,先上tree函数,在写分析记录//javascript 树形结构 function toTree(data) { // 删除 所有 children,以防止多次调用 ...
  • jayhkw
  • jayhkw
  • 2017年04月01日 15:35
  • 8746

JS递归遍历树结构

var arrs = []; function haha(){ var data = [ { name: '中国, ...
  • yf275908654
  • yf275908654
  • 2016年08月15日 22:07
  • 12235

Javascript多叉树的递归遍历和非递归遍历

演示之前的准备工作演示项目的文件结构:index.html jsonData.js recurrenceTree.js noRecurrenceTree.js解释一下各个文件:index.htm...
  • zhangchao19890805
  • zhangchao19890805
  • 2017年05月04日 10:49
  • 4923

js递归实现包名转换成对应的json对象

示例:由原对象{a: {test: 1, b: 2}} 根据a.b.c.d这样的包名转换为:{"a":{"test":1,"b":{"c":{"d":{}}}}}  说明:包名有"."分隔,本身代表着...
  • xinfei0803
  • xinfei0803
  • 2015年06月13日 21:15
  • 1141

java、js中实现无限层级的树形结构(类似递归)

java: http://www.iteye.com/topic/1119961 js中: var zNodes=[ {id:0,pId:-1,name:"Aaaa"},  ...
  • jimmy609
  • jimmy609
  • 2013年09月30日 18:25
  • 85618
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:递归遍历JS的对象的每个属性
举报原因:
原因补充:

(最多只允许输入30个字)