js递归遍历key

简介: 需求:根据Json对象,查找到某key所有值 var obj = { first: "1", second: { name: "abc", mykey: "2", third: { age: "3...

需求:根据Json对象,查找到某key所有值


 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;
 }

               

img_ba12a0daf31a049abc2de0445b40362b.jpg

运行结果如下:

检索mykey的值为:["5","2","3"]

目录
相关文章
|
4月前
|
JavaScript 前端开发 索引
js遍历的方法与区别
js遍历的方法与区别
64 3
|
2月前
|
前端开发 JavaScript
JavaScript递归菜单栏
JavaScript递归菜单栏
JavaScript递归菜单栏
|
3月前
|
JSON JavaScript 前端开发
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
|
3月前
|
JavaScript 前端开发
JavaScript基础知识-数组的遍历
关于JavaScript数组遍历基础知识的文章。
39 2
JavaScript基础知识-数组的遍历
|
2月前
|
JavaScript
js之遍历方法
js之遍历方法
13 0
|
4月前
|
缓存 JavaScript 前端开发
|
4月前
|
JavaScript 前端开发
JavaScript基础&实战(5)js中的数组、forEach遍历、Date对象、Math、String对象
这篇文章介绍了JavaScript中的数组、Date对象、Math对象以及包装类(String、Number、Boolean),并详细讲解了数组的创建、方法(如forEach、push、pop、unshift、slice、splice)和遍历操作,以及工厂方法创建对象和原型对象的概念。
JavaScript基础&实战(5)js中的数组、forEach遍历、Date对象、Math、String对象
|
4月前
|
机器学习/深度学习 JavaScript
node.js实现遍历所有文件夹里面的js文件,提取所有的url
node.js实现遍历所有文件夹里面的js文件,提取所有的url
|
4月前
|
JavaScript
js之遍历方法
js之遍历方法
39 0
|
5月前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
84 1