首页 > 其他分享 >js 中数组转树 递归方法

js 中数组转树 递归方法

时间:2023-05-24 21:24:31浏览次数:33  
标签:node name 递归 pid js 转树 var data id

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      var menuArry = [
        { id: 1, name: "办公管理", pid: 0 },
        { id: 2, name: "请假申请", pid: 1 },
        { id: 3, name: "出差申请", pid: 1 },
        { id: 4, name: "请假记录", pid: 2 },
        { id: 5, name: "系统设置", pid: 0 },
        { id: 6, name: "权限管理", pid: 5 },
        { id: 7, name: "用户角色", pid: 6 },
        { id: 8, name: "菜单设置", pid: 6 },
      ];

      var getJsonTree = function (data, parentId) {
        var itemArr = [];
        for (var i = 0; i < data.length; i++) {
          var node = data[i];
          if (node.pid === parentId) {
            var newNode = {
              id: node.id,
              title: node.name,
              children: getJsonTree(data, node.id),
            };
            itemArr.push(newNode);
          }
        }
        return itemArr;
      };

      console.log(getJsonTree(menuArry, 0));
    </script>
  </body>
</html>

  

标签:node,name,递归,pid,js,转树,var,data,id
From: https://www.cnblogs.com/7-up/p/17429547.html

相关文章

  • js前端fetch参数
    constresponse=fetch(url,{method:"GET",//请求方式headers:{//定制http请求的标头"Content-Type":"text/plain;charset=UTF-8"},body:undefined,//post请求的数据体,因为此时为get请求,故为undefinedreferrer:"about:client",referrerPolicy:......
  • 用jquery或js获取select标签中选中的option值及文本
    本文目录一、示例二、获取option的文本三、获取option中value的值四、代码展示一、示例<selectid="selectedTest"οnchange="doSomething();"><optionvalue="abc">北京</option><optionvalue="edf">上海</option><opt......
  • ZJSU五月多校合训
    强度焦虑制造者具体而言,zszz3在每个游戏版本中都会推出一名新角色,或加强一名旧角色。玩家必须将这名新角色或被加强的旧角色编入队伍,否则就会落后于版本。而编队数量是有限的,这意味着玩家可能不得不踢出一名编队中现有的角色。而若被加强的角色恰好在玩家的编队中,则可以开心......
  • 【踩坑记录】autojs使用while(1)导致broadcast无法正常执行
    autojs中的死循环操作最好使用setInterval而不是,while(1)。 while(1)会导致其他语句无法执行,这里面包括了信号相关的,比如今天踩得坑: 用events.broadcast.emit发出信号后,相应的on语句无法正常执行,后来才发现原来是为了一个用while(1)来执行死循环导致整个线程全部死在了这里,......
  • window 10 安装node.js时遇到2502 2503错误解决方法
    最近想安装一下node.js,可是在安装过程中出现了2503和2502的问题,如下图:不过除了这些代码外,微软并没有提供解决办法。这一问题出现在Win7/Win8.1/Win10中,原因就是C:\Windows\Temp文件夹NTFS权限错误。为了能够让WindowsInstaller操作正确,当前账户需要有Temp文件夹完全管理员权......
  • JQuery和JS的入口函数比较
    首先要知道JQuery入口函数和JS入口函数的区别:区别一: 在页面中书写个数不同:(1)JS的入口函数只能出现一次,出现多次会存在后者将前者事件覆盖的问题。(2)JQuery的入口函数,可以出现任意多次,并不存在事件覆盖问题。 区别二:执行时机不同:(1)JS的入口函数是在所有的文件资源加载......
  • js中判断数组的几种方法
    vara=[];基于instanceofainstanceofArray;基于constructora.constructor===Array;基于Object.prototype.isPrototypeOf()Array.prototype.isProtypeOf(a);基于getPrototypeOfObject.getPrototypeOf(a)===Array.prototype;基于Object.prototype......
  • JDK自带工具jstat
    打印类加载器信息,其中8297为java项目的进程号,可以使用jps名称打印java所有项目的进程号jstat-class8297 打印编译情况jstat-compiler8297 编译16705,编译失败一个,失败的方法sun/misc/URLClassPathgetLoader统计堆空间的情况,间隔时间2秒,执行5次jstat-gc8297......
  • 【JavaScript用法】JavaScript(JS)的基本语法(JS数据类型,JS变量,JS运算符,JS流程控制语句
    JavaScript(JS)的基本语法目录JavaScript(JS)的基本语法一.与html结合方式二.注释三.数据类型:四.变量五.运算符(和Java有点类似)六.流程控制语句(和JAVA 类似):七.JS特殊语法:一.与html结合方式       1.内部JS:定义<script>,标签体内容就是js代码(可以理解为和html......
  • JQuery框架 -- JQuery怎么使用和各个版本的区别、JQuery对象和JS对象区别、JQuery选择
    目录一、概念:一个JavaScript框架。简化JS开发。二、快速入门三、JQuery对象和JS对象区别与转换四、选择器:筛选具有相似特征的元素(标签)4.1、基本操作学习4.2、选择器分类    1.基本选择器      2.层级选择器      3.属性选择器      4.过滤......