zoukankan      html  css  js  c++  java
  • JavaScript 如何查找对象中某个 value 并返回路径上所有的 key值?

    对象中循环嵌套取连续的key值,输出连续key值拼接的字符串,类似取url地址
       var targetObj = {
            a: {
                b: {
                    c: {
                        d: {
                            e: {
                                name: "aaaaa"
                            }
                        }
                    }
                },
                d: '90',
                e: '90'
            },
            a2: {
                name: 'bbbbb'
            },
            a3: {
                k: {
                    l: {
                        name: 'ccccc'
                    }
                }
            },
            a4: {
                k: {
                    l: {
                        name: "北京",
                        author: 'jin',
                        version: '1.0.1'
                    }
                }
            }
        }
        // console.log(targetObj.a4.k.l);
        // {name: "北京", author: "jin", version: "1.0.1"}
        // author: "jin"
        // name: "北京"
        // version: "1.0.1"
    
    
        //  console.log(targetObj.a4.k.l.name);
        // 北京
    
    
    
        // flat() 方法,这个方法可以抹平一个数组。不管嵌套了多少的数组,都会展开成为一个无嵌套数组
        function search(object, value) {
            for (var key in object) {
                if (object[key] == value) return [key];
                if (typeof (object[key]) == "object") {
                    var temp = search(object[key], value);
                    if (temp) return [key, temp].flat();
                }
            }
        }
        var url = search(targetObj, "北京").join("/");
    
        console.log(url);
        // a4/k/l/name
    

      

  • 相关阅读:
    orm 锁 和 事务
    多表查询
    django 单表查询
    djgango装饰器
    几个SQL命令的使用
    怎么成为优秀的软件模型设计者?
    jbpm 工作流(二)
    Jbpm工作流(一)
    EJB 介绍
    JNDI 使用
  • 原文地址:https://www.cnblogs.com/t-sun-j/p/10736201.html
Copyright © 2011-2022 走看看