递归遍历:

  • 基本问题: 当前属性值不为对象时,打印键和值
  • 递归过程:当前属性值为对象时,打印键,继续递归
var o = {
a: {
b: {
c: {
d: {
e: {
f: 1,
g:{
h:2
}
}
}
}
}
}
};
function printObjRec(obj) {
for (var prop in obj) {
if (typeof (obj[prop]) === "object") {
console.log(prop);
getProp(obj[prop]);
return;
}
console.log(prop);
console.log(obj[prop]);
}
};
// printObjRec(o);

JavaScript 深度遍历对象的两种方式,递归与非递归的更多相关文章

  1. iOS:创建单例对象的两种方式

    单例模式:创建单例对象的两种方式 方式一:iOS4版本之前      static SingleClassManager *singleManager = nil;      +(SingleClas ...

  2. Python与数据库[2] -> 关系对象映射/ORM[2] -> 建立声明层表对象的两种方式

    建立声明层表对象的两种方式 在对表对象进行建立的时候,通常有两种方式可以完成,以下是两种方式的建立过程对比 首先导入需要的模块,获取一个声明层 from sqlalchemy.sql.schema i ...

  3. Java反射02 : Class对象获取的三种方式和通过反射实例化对象的两种方式

    1.Class对象获取的三种方式 本文转载自:https://blog.csdn.net/hanchao5272/article/details/79361463 上一章节已经说过,一般情况下,Jav ...

  4. JS中访问对象的两种方式区别

    可以使用下面两种方式访问对象的属性和方法 1.对象名.属性名 对象名.方法名() 2.对象名["属性名"] 对象名["方法名"]() var obj = { n ...

  5. Asp.net Web API 返回Json对象的两种方式

    这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName ...

  6. hibernate载入持久化对象的两种方式——get、load

    一.get与load对照 在hibernate中get和load方法是依据id取得持久化对象的两种方法.但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更 ...

  7. Python与数据库 sqlalchemy 建立声明层表对象的两种方式

    在对表对象进行建立的时候,通常有两种方式可以完成,以下是两种方式的建立过程对比 首先导入需要的模块,获取一个声明层 1 from sqlalchemy.sql.schema import Table, ...

  8. javascript中实现sleep的两种方式

    最近在js中要使用到类似于C++中的sleep函数(让cpu休眠).但是js是不可能让cpu休眠,所以可以通过下面的两种方式模拟sleep函数. 方式一:使用setTimeout函数代替.如果在一个循 ...

  9. 遍历hashMap的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

随机推荐

  1. requests.packages.urllib3.exceptions.ProxySchemeUnknown: Not supported proxy scheme

    python3 -m pip install -U requests[socks]

  2. 1.什么是springboot

    什么是spring? Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson . Spring是为了解决企业级应用开发的复杂性而创建的,简化开发. ...

  3. 使用Samba实现文件共享:Windows和Linux之间

    1.概述: 1987 年,微软公司和英特尔公司共同制定了 SMB(Server Messages Block,服务器消息 块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之 ...

  4. 【C语言】用指针作为形参完成数据的升序排列

    #include<stdio.h> void sort(int *x,int n); int main() { ] = { ,,,,,,,,, },i; sort(arr, ); prin ...

  5. 每天进步一点点------Xilinx IP 内核

    ISE 设计套件 11.1 版本中提供了众多全新的 IP 内核.数学函数:Multiply Adder v2.0 —— 执行两个操作数的乘法,并采用 XtremeDSP™ 解决方案切片将完全精确的乘积 ...

  6. SQL查询语句的执行

    执行过程 连接器 - 管理连接,权限验证 查询缓存 - 命中缓存直接返回结果 分析器 - 词法分析 ,语法分析 优化器 - 分析执行计划,选择最优的执行计划 执行器 - 操作存储引擎接口,返回结果 不 ...

  7. SQL 杂项

    select  *  from 表  where to_date(ksrq,'yyyy-MM-dd')<=sysdate and  sysdate  <= to_date(jsrq,'yy ...

  8. vue路由,ajax,element-ui

    复习 """ 1.vue项目环境: node => npm(cnpm) => vue/cli 2.vue项目创建: vue create 项目 在pychar ...

  9. Go包

    1. 导入包和init函数 init().main() 是 go 语言中的保留函数.我们可以在源码中,定义 init() 函数.此函数会在包被导入时执行,例如如果是在 main 中导入包,包中存在 i ...

  10. 8.5-Day1T2--Asm.Def 的基本算法

    题目大意 给一棵树,求∑∑w_i*w_j*w_LCA(i,j) w_i表示i点权值 题解 显然一点点求lca是肯定会tle的 那就想如何优化 i和j的lca和j和i的lca是一样的 DFS,在每个x处 ...