/**
* 根据接口返回地址字段,找出地址树中的森林
* @param {*} value 接口给出的字段值
* @param {*} key 接口中所对应的key值
* @param {*} arr 数据源
*/
function getAddressPath(value, key, arr){
    if(!value) return false;
        let temppath = [];
       try {
          function getNodePath(node){
              temppath.push(node);
              //找到符合条件的节点,通过throw终止掉递归
              if (node[key] === value) {
                 throw ("GOT IT!");
               }
             if (node.children && node.children.length > 0) {
                for (var i = 0; i < node.children.length; i++) {
                   getNodePath(node.children[i]);
                }
              //当前节点的子节点遍历完依旧没找到,则删除路径中的该节点
              temppath.pop();
             } else {
             //找到叶子节点时,删除路径当中的该叶子节点
               temppath.pop();
          }
      } 
         for (let i = 0; i < arr.length; i++) {
           getNodePath(arr[i]);
        }
      } catch (e) {
      temppath;
      }
        const _label = temppath && temppath.map((item) => item.label);
        const label_str = _label.join('/');
        return label_str;
}

根据数据中最深的一个值,找出这个值有关联的整个树,比如地址的回显,接口会给出最后面的地址,需要根据这个值去循环上面树的所有节点的lable值的更多相关文章

  1. oracle数据中记录被另一个用户锁住

    原因:PL/SQL里面执行语句执行了很久都没有结果,于是中断执行,于是就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住. 解决方法: 第一步:(只是用于查看哪些表被锁住,真正有 ...

  2. C++ 从一组数据中按概率选择一个

    #include <stdio.h> #include <stdint.h> #include <ctime> #include <vector> #i ...

  3. 在django中如何从零开始搭建一个mock服务

    mock概念 mock 就是模拟接口返回的一系列数据,用自定义的数据替换接口实际需要返回的数据,通过自定义的数据来实现对下级接口模块的测试.这里分为两类测试:一类是前端对接口的mock,一类是后端单元 ...

  4. 【Java EE 学习 73】【数据采集系统第五天】【参与调查】【导航处理】【答案回显】【保存答案】

    一.参与调查的流程 单击导航栏上的“参与调查”按钮->EntrySurveyAction做出相应,找到所有的Survey对象并转发到显示所有survey对象的页面上供用户选择->用户单击其 ...

  5. Struts2【UI标签、数据回显、资源国际化】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签...也就是显示页面的标签..... 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再 ...

  6. 返回数据中提取数据的方法(JSON数据取其中某一个值的方法)

    返回数据中提取数据的方法 比如下面的案例是,取店铺名称 接口返回数据如下: {"Code":0,"Msg":"ok","Data& ...

  7. JAVA获取oracle中sequences的最后一个值

    项目中,用到一个序列作单号,框架用的是ssh,在dao层去拿的时候,运行时报错为dual is not mapped,[select *.nextval nextvalue from dual] 后来 ...

  8. VUE 直接通过JS 修改html对象的值导致没有更新到数据中去

    业务场景 我们在使用vue 编写 代码时,我们有一个 多行文本框控件,希望在页面点击一个按钮 在 文本框焦点位置插入一个 {pk}的数据. 发现插入 这个数据后,这个数据并没有同步到 数据中,但是直接 ...

  9. Python学习笔记之7.5 - 定义有默认参数的函数》》》直接在函数定义中给参数指定一个默认值,默认参数的值应该是不可变的对象

    问题: 你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值. 解决方案: 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了.例如: ...

  10. 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据

    在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zook ...

随机推荐

  1. Solon 权限认证之 Sa-Token 的使用与详解

    本文详细介绍了 Sa-Token 在 Java 项目中的使用方法,包括 Sa-Token 的基本概念.与其他权限框架的比较.基本语法和高级用法,并通过实例讲解了如何在项目中集成和使用 Sa-Token ...

  2. 无GC的Java创新设计思路:作用域引用式自动内存管理

    # 作用域引用式自动内存管理:面向实时系统的无垃圾回收方案​​<Scope-Referenced Automatic Memory Management: A Garbage Collectio ...

  3. 理解 Linux 系统中的熵(Entropy)

    1.概述 在 Linux 的世界里,熵(Entropy)是一个关乎系统安全性与性能的核心概念.它并非一个晦涩的物理术语,而是系统高质量随机数的生命线,是加密通信.安全登录等关键操作的基石.简单来说,你 ...

  4. iNeuOS工业互联网操作系统,更新计量数据处理方式和在线报表,实现能源管理基础功能

    目       录 1.....概述 2.....计量数据点的处理方式 3.....在线报表增加时间格式化配置 4.....应用效果 1.  概述 本次iNeuOS工业互联网操作系统升级内容主要包括: ...

  5. CiM仿真建模工具综述

    前言 做了很久的CiM电路,但一直感觉缺乏一套全栈式的仿真建模工具,因此有必要对目前公开发表的各类CiM仿真建模工具进行调研. 这次综述主要的目标是调研一些关联性比较强的工作,简述这些工作的核心ide ...

  6. QOJ # 9435. Welcome to NPCAPC/C - npcapc

    QOJ # 9435. Welcome to NPCAPC/C - npcapc 题意 有 \(t\) 次询问,每次给出一个 \(n\),问有多少个长度为 \(n\) 的包含大小写的字符串满足包含 \ ...

  7. 存储故障,强制拉库报ORA-600 kcbzib_kcrsds_1处理---惜分飞

    联系:手机/微信(+86 17813235971) QQ(107644445) 标题:存储故障,强制拉库报ORA-600 kcbzib_kcrsds_1处理 作者:惜分飞版权所有[未经本人同意,不得以 ...

  8. DeepResearch代码浅析

    DeepResearch代码浅析 概述 代码:DeepResearch 主要看一下inference下面的ReAct推理流程. inference ├── eval_data │ ├── exampl ...

  9. 使用自定义的类CSetODBC(二)

    何志丹 1,利用SQL词句理论上可以使用任何数据库,以sql为例.body.clientHeight)this.width=body.clientHeight" src="http ...

  10. 1-5 FHS结构

    Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件 ...