JS树结构转list结构
树转list
/**
* 树转list
*/
function treeToList(tree){
for(var i in tree){
var node = tree[i];
list = []; //结果lsit
if (node.children.length !== 0) { //遍历树的第一层,只有一个根结点
//第一层加入到list中,因为根结点模块设置为虚拟结点,所以不用加入
/*list.push({
id: node.id,
name: node.title,
parentId:node.parentId
});*/
toListDF(node.children, list, node.id); //遍历子树,并加入到list中.
}
}
return list;
} /**
* 深度优先遍历树
* 一个递归方法
* @params tree:要转换的树结构数据
* @params list:保存结果的列表结构数据,初始传list = []
* @params parentId:当前遍历节点的父级节点id,初始为null(因为根节点无parentId)
**/
function toListDF (tree, list, parentId) {
for (var i in tree) { //遍历最上层
//将当前树放入list中
var node = tree[i];
list.push({
id: node.id,
name: node.title,
parentId:parentId
});
//如果有子结点,再遍历子结点
if (node.children.length !== 0) {
toListDF(node.children, list, node.id) //递归
}
}
}
JS树结构转list结构的更多相关文章
- jQuery图片无缝滚动JS代码ul/li结构
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- JS中的运算符和JS中的分支结构
JS中的运算符 1.算术运算(单目运算符) + .-.*. /. %取余.++自增 .--自减 +:两种作用,链接字符串/加法运算.当+两边全为数字时,进行加法运算:当+两边有任意一边为字符串时,起链 ...
- Node.js与Sails~项目结构与Mvc实现
回到目录 Sails是一个Node.js的中间件架构,帮助我们很方便的构建WEB应用程序,网址:http://www.sailsjs.org/,它主要是在Express框架的基础上发展起来的,扩展了新 ...
- Node.js入门:包结构
JavaScript缺少包结构.CommonJS致力于改变这种现状,于是定义了包的结构规范(http://wiki.commonjs.org/wiki/Packages/1.0 ).而NPM的 ...
- JS基础-----JS中的分支结构及循环结构
[分支结构] 一.if-else结构 1.结构的写法:if(判断条件){ //条件为true时,执行if的{} }else{ //条件为false时,执行else的{} } 2.注意事项 ①else语 ...
- 从零开始学 Web 之 Vue.js(一)Vue.js概述,基本结构,指令,事件修饰符,样式
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- Vue.js系列之项目结构说明
转:https://www.jb51.net/article/111658.htm 前言 在上一篇项目搭建文章中,我们已经下载安装了node环境以及vue-cli,并且已经成功构建了一个vue-cli ...
- js 树结构数据遍历条件判断
代码: /** * 树结构数据条件过滤 * js 指定删除数组(树结构数据) */ function filter (data, id) { var newData = data.filter(x = ...
随机推荐
- (九)OpenStack---M版---双节点搭建---Swift(单节点)安装和配置
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 本次搭建仅采用Compute单节点做swift组件 1.Controller安装并配置控制节点 ...
- python3汉诺塔简单实现代码
小时候喜欢玩汉诺塔,今天用python实现简单的汉诺塔功能 代码: def hannoi(n,x,y,z): if n==1: print(x,'-->',z) else: hannoi(n-1 ...
- JDOJ 1044 Span
JDOJ 1044 Span https://neooj.com/oldoj/problem.php?id=1044 Description 某国有N个村子,M条道路,为了实现“村村通工程”现在要”油 ...
- LG2512/BZOJ1045 「HAOI2008」糖果传递 中位数
问题描述 LG2512 BZOJ1045 题解 这是一个链状问题的环状版本. 问题最终变为给定数轴上的\(n\)个点,找出一个到他们的距离之和尽量小的点,而这个点就是这些数中的中位数. 网络流24题的 ...
- 使用zeebe DebugHttpExporter 查看zeebe 工作流信息
zeebe 提供了一个DebugHttpExporter 可以方便的查看部署以及wokrflow 运行信息 以下是一个简单的运行试用,同时集成了prometheus,添加了一个简单的grafana d ...
- itsdangerous模块
使用场景: 在取消订阅时,可以在URL里序列化并且签名一个用户的ID或在任何的激活账户的链接或类似的情形下使用.这种情况下不需要生成一个一次性的token并把它们存到数据库中. 被签名的对象可以被存入 ...
- 【day04】PHP
一. 运算符 1.按功能分 (1)算术运算符 (2)字符运算符 (3)赋值运算符 (4)比较运算符 (5)逻辑运算符 (6)错误抑制符 (7)执行运算符 2.逻辑运算符 : ! & ...
- 4.Python项目实战
这里会每个周更新一个Python的大练习,作为 实战项目... elk
- thinkphp5.0 - 安装
1.thinkphp 5.0 可以通过下载,git 等方式安装,我这里采用下载完整版安装,解压到一个目录下就行了 2.配置 web 服务器配置文件,我是用的是 nginx(nginx/1.9.15) ...
- contentType: 'application/json' C#后台怎么处理
contentType: 'application/json' 的处理如下: $(function () { $.ajax({ 'url': "/Home/Send2SHengPi" ...