js 树形结构根据id获取父级节点元素

yizhihongxing

封装函数

// 传入 id、树形结构数据
export function getParentTree(id, tree) {
  let arr = [] //要返回的数组
  for (let i = 0; i < tree.length; i++) {
    let item = tree[i]
    arr = []
    arr.push(item) //保存当前节点id
    if (id== item.id) {
      //判断当前id是否是默认id
      return arr //是则退出循环、返回数据
    } else {
      //否则进入下面判断,判断当前节点是否有子节点数据
      if (item.children && item.children.length > 0) {
        //合并子节点返回的数据
        arr = arr.concat(getParentTree(id, item.children ? item.children : []))
        console.log(arr)
        if (arr.map(item2 => (item2 ? item2.id : '')).includes(id)) {
          //如果当前数据中已包含默认节点,则退出循环、返回数据
          return arr
        }
      }
    }
  }

调用函数

const treeData = [{
  name: '1',
  id: 1,
  children: [{
    name: '1-1',
    id: 2,
    children: [{
      name: '1-1-1',
      id: 4,
    }],
    name: '1-2',
    id: 3,
    children: [{
      name: '1-2-1',
      id: 5,
    }],
  }]
},{
  name: '2',
  id: 6,
  children: [{
    name: '2-1',
    id: 7,
    children: [{
      name: '2-1-1',
      id: 9,
    }],
    name: '2-2',
    id: 8,
    children: [{
      name: '2-2-1',
      id: 10,
    }],
  }]
}]
console.log(getParentTree(5, treeData))

原文链接:https://www.cnblogs.com/zhanlibiao/p/17388752.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 树形结构根据id获取父级节点元素 - Python技术站

(0)
上一篇 2023年5月11日
下一篇 2023年5月17日

相关文章

  • js实现具有高亮显示效果的多级菜单代码

    实现具有高亮显示效果的多级菜单代码需要以下步骤: 1.准备HTML结构 首先,需要准备一个基本的HTML结构。我们可以使用无序列表(ul)和有序列表(ol)来构建多级菜单。例如,下面是一个三级菜单结构: <ul> <li><a href="#">一级菜单</a> <ul> &lt…

    JavaScript 2023年6月11日
    00
  • javascript中的缓动效果实现程序

    JavaScript中缓动效果实现程序的完整攻略 什么是缓动效果 缓动效果是一种常见的动画效果,它可以让元素在运动过程中不再像原来那么“匀速”,而是呈现出先快后慢或者先慢后快的动画效果。缓动效果可以让动画显得更加自然流畅。 实现缓动效果的方法 1. 使用Tween.js库 Tween.js是一个常见的缓动效果库,它可以方便地实现各种缓动效果。使用Tween.…

    JavaScript 2023年5月28日
    00
  • 巧用weui.topTips验证数据的实例

    下面是使用weui.topTips验证数据的完整攻略: 准备工作 首先需要在你的项目中引入WeUI和jQuery。可以通过以下方法引入: <!– WeUI样式 –> <link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/2.0.1…

    JavaScript 2023年6月11日
    00
  • js COL能很好的控制表格的列

    JS COL指的是JavaScript中的HTML DOM元素中的col对象,通过JS代码操作col对象可以对表格中某一列的特征进行修改。 下面是操作表格中某一列时常用的一些属性: align:水平方向上的对齐方式。 width:设置该列的宽度,比如设置width为”100″,则表示该列的宽度为100个像素。 span:设置该列跨几列,比如设置span为”2…

    JavaScript 2023年6月11日
    00
  • 实例讲解动态加载gridview中的行及其样式

    我们来详细讲解一下如何实现“实例讲解动态加载gridview中的行及其样式”。 准备工作 在开始这个示例之前,你需要先安装以下工具和组件: .NET Framework 4.0 或以上版本 Visual Studio 2010 或以上版本 接下来,你还需要按照以下步骤创建一个新的 Web 应用程序: 打开 Visual Studio。 选择“文件” -&gt…

    JavaScript 2023年6月11日
    00
  • JS实现的抛物线运动效果示例

    下面我将为你详细讲解“JS实现的抛物线运动效果示例”的完整攻略。具体内容如下: 抛物线运动效果实现的原理 在实现抛物线运动效果之前,我们需要先了解它的基本原理。通俗地说,抛物线运动是指一种自由落体运动,其加速度大小保持不变,但方向发生变化,运动轨迹呈现抛物线形状。在应用中,我们可以通过以下公式来计算抛物线运动的位置: x = vx * t + x0; y =…

    JavaScript 2023年5月28日
    00
  • 在JS数组特定索引处指定位置插入元素的技巧

    在JS数组中,在特定的索引处添加元素或删除元素是非常常见的操作。本文将介绍两种在JS数组特定索引处指定位置插入元素的技巧。 技巧一:splice() 方法 JS数组提供了一个splice()方法,可以在数组中添加或删除元素,并返回被删除元素组成的一个新数组。splice方法接收三个参数:起始位置、删除个数、要添加的元素。 以下是在特定位置插入元素的示例: c…

    JavaScript 2023年5月27日
    00
  • 18个高频使用的JS工具方法总结

    标题:18个高频使用的JS工具方法总结 – 完整攻略 正文: 背景介绍 作为开发人员,经常需要使用一些常用工具方法来处理各种问题,这些工具方法可以节省开发时间、提高代码效率。本文总结了18个高频使用的JS工具方法,并对每个工具方法进行详细说明,包括使用方法、参数说明及返回值等内容。本文旨在为大家提供一份可供参考的JS工具方法总结,让大家能够更加高效地完成开发…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部