有一个树形结构,实现一个方法getKeys(data,str);获取字符串str在data中的所有上级节点的名称,例如:

getKeys(data,'str1') 返回 ‘key1'

getKeys(data,'str3') 返回 ‘key2 key3'

getKeys(data,'str6') 返回 ‘key2 key5 key6'

代码如下:

var data = {
key1: 'str1',
key2: {
key3: 'str3',
key4: 'str4',
key5: {
key6: 'str6'
}
}
}
function getKeys(data, val) {
for (var key in data) {
if (typeof data[key] === 'object') {
var t = getKeys(data[key], val)
return t ? key + ' ' + t : ''
} else {
if (data[key] === val)
return key;
}
}
} console.log(getKeys(data, 'str6'));

有一个树形结构,实现一个方法getKeys(data,str),获取字符串str在data中的所有上级节点的名称的更多相关文章

  1. python如何将指定路径下的某类型文件,返回一个树形结构体,让前端显示为树形的目录结构

    最近遇到一个问题就是某个linux的目录下有各种文件现在的要求是只需要返回.kml格式的文件,并根据前端要求返回如下结构体即:[{'children': [{'children': [{'title' ...

  2. C# 把带有父子关系的数据转化为------树形结构的数据 ,以及 找出父子级关系的数据中里面的根数据Id

    紧接上一篇,将List<Menu>的扁平结构数据, 转换成树形结构的数据 返回给前端   ,   废话不多说,开撸! --------------------- 步骤: 1. 建 Menu ...

  3. 关于idea新建子目录时往父目录名字后叠加而不是树形结构的解决方法(转)

    我们在IDEA中创建子目录时,子目录总是在父目录后面叠加而不是树形,如下 我们可以打开项目窗口的右上角的设置标志, 将红圈选项的√先去掉,创建好子目录后再将它选中就可以

  4. MVC3+EF4.1学习系列(十)----MVC+EF处理树形结构

    通过前几篇文章 我们处理了 一对一, 一对多,多对多关系 很好的发挥了ORM框架的做用 但是 少说了一种 树形结构的处理, 而这种树形关系 我们也经常遇到,常见的N级类别的处理, 以及经常有数据与类别 ...

  5. 解决C#程序只允许运行一个实例的几种方法详解

    解决C#程序只允许运行一个实例的几种方法详解 本篇文章是对C#中程序只允许运行一个实例的几种方法进行了详细的分析介绍,需要的朋友参考下 本文和大家讲一下如何使用C#来创建系统中只能有该程序的一个实例运 ...

  6. C# EasyUI树形结构权限管理模块

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节和大家探讨下C#使用EasyUI树形结构/Tree构 ...

  7. [SQL Server]树形结构的创建

    对于SQL Server来说,构建显示一个树形结构不是一件容易的事情,逻辑构造能力不是它的强项.不过也不是说它没有能力干这个事情,只要换一种思维方式就可以理解它的工作原理. 例如,现在有一张表的内容如 ...

  8. Qt中如何写一个model(自定义一个RowNode,我没有碰到过)

    在qt中,用到最多就是model/view的结构来表示数据层及表示层的关系.model用于给view提供数据.那如何来实现一个简单的树形model呢. 实现一个自己的model需要重载以下的方法: Q ...

  9. 递归、嵌套for循环、map集合方式实现树形结构菜单列表查询

    有时候, 我们需要用到菜单列表,但是怎么样去实现一个菜单列表的编写呢,这是一重要的问题. 比如我们需要编写一个树形结构的菜单,那么我们可以使用JQuery的zTree插件:http://www.tre ...

随机推荐

  1. Python和Anoconda和Pycharm联合使用教程

    简介 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. ...

  2. thinkPHP5.1模型User设计

    创建一个User类,再引入think\Model,让User类继承Model 例: <?php namespace app\index\model; use think\Model; class ...

  3. 本地建立Minecraft服务器

    在自己的PC上建立Minecraft服务器!而且超!级!快! 注册natapp账户 购买一条tcp型隧道(PE服务器用udp型),免费/付费均可,但由于免费隧道不能自定义端口,且会不定时更换域名和端口 ...

  4. 剑指offer-面试题54-二叉搜索树的第k大节点-中序遍历

    /* 题目: 求二叉搜索树的第k大节点. */ /* 思路: 中序遍历. */ #include<iostream> #include<cstring> #include< ...

  5. .net生成PDF文件的几种方式

    以下为在.net mvc中,生成pdf的几种方式,资料都是在做项目时网上找的 1.使用Microsoft.Office.Interop.Word.dll将word转换为PDF dll可以单独下载,一般 ...

  6. sc 与 net 命令

    查看命令的帮助: help sc 或者 help net net: net start mysql  打开服务 net stop mysql 关闭服务 net pause mysql 暂停服务 sc ...

  7. 小白的java学习之路 “ 选择结构(一)”

    if选择结构: if选择结构是根据条件判断之后再做处理的一种语法结构. 1.if选择结构的语法: public class Demo{ public static void main(String[] ...

  8. Java设计模式(一)UML总结

    定义 统一建模语言(英语: Unified Modeling Language ,缩写UML)是非专利的第三代建模和规约语言. UML特点 UML是一种开放的方法 用于说明.可视化.构建和编写一个正在 ...

  9. 【easyui】treegrid逐级加载源码

    当初看这源码的目的是: 1.treegrid是怎么实现逐级加载树结构的. 解: 见demo,主要就是点击节点的时候会请求后台. 2.treegrid加载后,第二次展开节点会不会再次请求后台. 解:第二 ...

  10. sublime—text终端无法输入,不支持scanf、input等语法问题的解决

    sublimetext是个很好用的轻量编辑器,,支持多语言语法高亮,自动补全,快捷键编译运行,而且ui也不错挺简洁,我一直在用.我之前浏览帖子时候看到有些人也在用这个编辑器. 但是吧,这个编辑器的的编 ...