1.递归遍历查找特定key值(ie9以下不支持forEach)

原文http://www.cnblogs.com/ae6623/p/5938560.html

var obj = {
first: "1",
second: {
name: "abc",
mykey: "2",
third: {
age: "30",
mykey: "3"
}
},
forth: "4",
mykey: "5"
}; console.log(getMykey(obj, [])); function getMykey(obj, mykeyValues) {
//没有则跳出
if (!obj["mykey"]) {
return mykeyValues;
} else {
//有就放入
mykeyValues.push(obj["mykey"]);
//再次递归
var keys = Object.keys(obj);
keys.forEach(function(i) {
getMykey(obj[i], mykeyValues);
});
}
return mykeyValues;
}

2.递归遍历输出key

参考http://www.jb51.net/article/86607.htm

要求输出嵌套json对象的key name

LG: var tree = {node1:{node2:"",node3:{node4:""}}}

Print: ["node1","node2","node3","node4"]

答案:

var arr=[];
function printTree(tree){
for(var i in tree){
arr.push(i);
typeof tree[i]=='object'?printTree(tree[i]):'';
};
}(tree);
console.log(arr);

var obj ={first:"1",second:{name:"abc",mykey:"2",third:{age:"30",mykey:"3"}},forth:"4",mykey:"5"};console.log(getMykey(obj, []));functiongetMykey(obj, mykeyValues) {//没有则跳出if (!obj["mykey"]) {return mykeyValues;}else{//有就放入mykeyValues.push(obj["mykey"]);//再次递归var keys =Object.keys(obj);keys.forEach(function(i) {getMykey(obj[i], mykeyValues);});}return mykeyValues;}

javascript JS递归遍历对象 使用for(variable in object)或者叫for/in和forEach方式的更多相关文章

  1. js 递归遍历对象 插入属性 遍历树结构

    // 向 info下面 每一项 插入 isShow test() { const _this = this; _this.info.isShow = false; let iteration = fu ...

  2. JavaScript对象---递归遍历对象

    JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象. JavaScript 对象 JavaScript 提供多个内建对象,比如 St ...

  3. js递归遍历多维数组并在修改数组的key后返回新的多维数组

    我司最近正在用VUE做一个基于用户权限显示不同左侧菜单的后台管理系统,接口会根据用户的权限不同返回不同的菜单名称.URL等,前端要将这些菜单名称及URL动态添加到系统的左侧,这里就用到了vue-rou ...

  4. js 遍历对象属性(for in、Object.keys、Object.getOwnProperty) 以及高效地输出 js 数组

    js中几种遍历对象的方法,包括for in.Object.keys.Object.getOwnProperty,它们在使用场景方面各有不同. for in 主要用于遍历对象的可枚举属性,包括自有属性. ...

  5. JS/jQuery 遍历对象属性

    Javascript For/In 循环: 循环遍历对象的属性 var person={fname:"John",lname:"Doe",age:25}; fo ...

  6. js es6遍历对象的6种方法(应用中推荐前三种)

        javaScript遍历对象总结 1.for … in 循环遍历对象自身的和继承的可枚举属性(循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).). 2.使用Object.keys ...

  7. js中遍历对象的属性和值的方法

    鉴于循环目标是个对象,length是为undefined,用map等对数组的循环方法不行,对象就用此下方法 for(var key in _this.lists.medicines){ medicin ...

  8. js中遍历对象(5种)和遍历数组(6种)的方法总结(转载)

    一.遍历对象方法 1.for...in遍历输出的是对象自身的属性以及原型链上可枚举的属性(不含Symbol属性),原型链上的属性最后输出说明先遍历的是自身的可枚举属性,后遍历原型链上的 eg: var ...

  9. js 数组遍历 对象遍历

    一.数组遍历 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( var i = 0; i <arr.length; i++){ console.lo ...

随机推荐

  1. C++ 回调函数的简单例子(转)

    原文转自 http://blog.csdn.net/wnlwcg/article/details/6930990# 1.调用端 // 下面的这个_stdcall很重要的 void _stdcall T ...

  2. 标准C程序设计七---101

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  3. Python学习笔记2_一些小程序

    counts = [98,12,3,4,1,4,9,3821] minNum = min(counts) #print minNum minNum_index = counts.index(minNu ...

  4. 不要使用 reader.Peek() 去读取每行数据

    1.问题描述 使用SteamRead的Peek()和ReadLine()来读取流中的数据,如果数据行数太多,会读取不完整(后面有些数据就读不出来了). 比如: while (srResponseRea ...

  5. 关于django rest framework里token auth的实现及答疑

    http://stackoverflow.com/questions/14838128/django-rest-framework-token-authentication ============= ...

  6. 利用adb截屏

    一  第一种方式 二 第二种方式  

  7. Java集合——Collections工具类

    Java集合——Collections工具类 摘要:本文主要学习了Collections工具类的常用方法. 概述 Collections工具类主要用来操作集合类,比如List和Set. 常用操作 排序 ...

  8. Jena+fuseki

    1.下载apache-jena-3.1.0.tar.gz,这个可以将ttl三元组文件或者xml文件加载 进入bin目录,执行./tdbloader2 --loc /path/for/database ...

  9. spring aop提供了两种实现方式jdk和cglib

    Spring AOP使用了两种代理机制:一种是基于JDK的动态代理:另一种是基于CGLib的动态代理.之所以需要两种代理机制,很大程度上是因为JDK本身只提供接口的代理,而不支持类的代理. Sprin ...

  10. GCD CoreData 简化CoreData操作(转)

    来自会员带睡帽的青蛙的分享: 短话长说,开始写这个小工具到现在有两个月了,虽然东西少,但是很精练,改了又改,期间有不少问题 在坛子里获得了不少帮助 谢谢各位大大. 就是两个文件一个类 CoreData ...