首页 > 其他分享 >树状结构查找爹们

树状结构查找爹们

时间:2022-10-08 17:33:29浏览次数:46  
标签:node 爹们 树状 父级 children 查找 fullId id name

我有原始数据如下

const nodes = {
  id: "abc",
  name: "爷爷",
  children: [
    {
      id: "def",
      name: "爹",
      children: [{ id: "jkl", name: "我" }],
    },
  ],
};

如上数据 拿到某一层的item,但是并不会知道它的父级 父级的父级 父级的父级的父级是谁?
这该怎么办,简单 我处理完这个数据,加一个标识不就行了。

// 处理一边数据 加一个字段 用来获取ppppids
const hadelData = (nodes) => {
  const handel = (node, pnode) => {
    // param.fullId = param.id+pid;
    if (pnode) {
      // 当前的fullId=上级的fullId+自己的id
      node.fullId = pnode.fullId + "_" + node.id;
    } else {
      // 最顶层的fullId就等于自己的id
      node.fullId = node.id;
    }

    // 遍历 给所有元素加上这个fullId标识
    if (node.children) {
      node.children.forEach((element) => {
        handel(element, node);
      });
    }
  };
  const nodesCopy = {...nodes}; // 整一个副本 别把原始数据搞乱了
  handel(nodesCopy);
  return nodesCopy;
};

使用下试试,之后打印如下

const res = hadelData(nodes);
console.log(nodes, res);
{
    "id": "abc",
    "name": "爷爷",
    "fullId": "abc"
    "children": [
        {
            "id": "def",
            "name": "爹",
            "fullId": "abc_def"
            "children": [
                {
                    "id": "jkl",
                    "name": "我",
                    "fullId": "abc_def_jkl"
                }
            ],
        }
    ]
}

有了fullId这个字段 就好办多了

标签:node,爹们,树状,父级,children,查找,fullId,id,name
From: https://www.cnblogs.com/dingshaohua/p/16769635.html

相关文章

  • Python 如何查找特定类型文件(以xls和xlsx为例)
    今天的文章是介绍如何用Python去定位特定类型的文件,会讲到用字符串匹配文件名定位特定文件以及顺带介绍一下遍历目录树的函数,通过今天的这一部分以及之前文章讲到的文件......
  • 二分查找
    整数二分右边界如图:x为所需的边界,绿色范围为满足的区域,红色范围为不满足的区域如何一直二分找到x呢先设置一个mid=(l+r)/2;判断一下mid是否符合要求;如果结果符合,mid在x的左......
  • 文件查找与读取的常用指令
    目录findgrepcatmoreheadtailfind通常用来在特定目录下搜索符合条件的文件用法:find[路径][方法][参数]命令含义find./-name1.txt查找当前路径下......
  • 折半查找
    #include<map>#include<stdio.h>#include<iostream>usingnamespacestd;longlongbox[50];longlongpos[50];intmain(){longlongn,m;cin>>n>......
  • Java二分查找代码实现
    Java二分查找代码实现及原理简要分析代码原理描述前提:已经有一个排好序的数组(否则需要先排序)定义左边界left,右边界right,确定搜索范围,循环执行二分查找(第3、4步骤)......
  • 关于树状数组的一些思考
    在写题时看到大佬们对树状数组的精妙使用,故进一步思考树状数组中的规律和信息:存袁术数据a[], 存树状数组数据f[]1、观察到f[i]一定保存了a[i]的数据2、观察到f......
  • 树结构系列(一):从普通树到二叉查找树
    树结构是数据结构中非常重要的一种类型,本文将从最基础的普通树结构入门,延伸到二叉树,再延伸至二叉查找树。通过这种思路,让大家构建起关于树的最基本的知识链路。普通树树是一......
  • 树状数组-归并排序-逆序对-2426. 满足不等式的数对数目
    问题描述给你两个下标从0 开始的整数数组 nums1和 nums2 ,两个数组的大小都为 n ,同时给你一个整数 diff ,统计满足以下条件的 数对 (i,j) :0<=i<j<=n-......
  • 算法突破:二分查找
    LeetCode75学习计划适用于想为技术面试做准备但不确定应该聚焦于哪些题目的用户。学习计划中的题目都是经过精心挑选的,Level1和Level2学习计划是为初级用户和中级用户......
  • LeetCode 07 - 二分查找
    注意几个点:区间的确定:一般写成闭区间[left=0,right=n-1]。循环条件的确定:因为使用闭区间,所以left==right在区间中是有意义的,所以循环条件为while(left<=right)......