zoukankan      html  css  js  c++  java
  • javascript JS递归遍历对象 使用for(variable in object)或者叫for/in和forEach方式

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

     

  • 相关阅读:
    自动化测试成功11333
    自动化测试成功11222
    自动化测试成功1111
    自动化测试成功112
    自动化测试成功18
    自动化测试成功1
    自动化测试成功
    富文本测试
    关于VMware虚拟机磁盘收缩的几种方法
    8个让你更有效率的简单方法
  • 原文地址:https://www.cnblogs.com/eastegg/p/6439225.html
Copyright © 2011-2022 走看看