function treeTolist(treeNodes, opt) {

        if (!opt) {
opt = {};
opt.key = "id";
opt.parent = "pid";
opt.children = "children";
} var NodeList = []; function appenChildren(nodes) { for (var i = 0; i < nodes.length; i++) { var node = nodes[i]; //如果没有上层节点那么就是根节点
if (node.parentNode == null) {
node.Level = 0;
node[opt.parent]=0;
}
//判断是否有子节点
if (node[opt.children] && node[opt.children].length > 0) {
//所有子节点
for (var k = 0; k < node.children.length; k++) {
node[opt.children][k][opt.parent] = node[opt.parent];
node[opt.children][k].Level = node.Level + 1;
node[opt.children][k].parentNode = node;
} appenChildren(node.children); }
if(node.hasOwnProperty("parentNode"))
delete node.parentNode;
if(node.hasOwnProperty(opt.children))
delete node[opt.children];
NodeList.push(node); }
} appenChildren(treeNodes); return NodeList; } var TreeNodes = [
{
"id": 1,
"parent": 0,
"children": [
{
"id": 2,
"parent": 1,
"children": [
{
"id": 3,
"parent": 2,
"children": [
{
"id": 4,
"parent": 3,
"children": [
{
"id": 5,
"parent": 4,
"children": [
{
"id": 6,
"parent": 5,
"children": [
{
"id": 7,
"parent": 6,
"children": [
{
"id": 8,
"parent": 7,
"children": [
{
"id": 9,
"parent": 8,
"children": [
{
"id": 10,
"parent": 9,
"children": []
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]; var treeNodeList = treeTolist(TreeNodes, {
key: "id",
parent: "pid",
children: "children"
});
console.log(JSON.stringify(treeNodeList));

技术交流QQ群:15129679

javascript 将treeNode 转换id和pid的Array的更多相关文章

  1. ztree树id、pid转成children格式的(待整理完整)

    山铝菜单 因为菜单选用了bootstrap treeview ,而格式需要是children类似的格式 var nodes = [ {name: "父节点1", children: ...

  2. JavaScript通过父节点ID递归生成JSON树

    JavaScript通过父节点ID递归生成JSON树: · 实现思路:通过递归实现(第一次递归的时候查询出所有的父节点,然后通过当前父节点id不断地去查询所有子节点,直到递归完毕返回)   · 代码示 ...

  3. javascript的数值转换

    在javascript中数值转换,最要的一点是函数第一个字母必须要大写.js中的函数有string字符型.number数值型.null空型.boolean布尔型.undefined未定义. 具体的转换 ...

  4. JSON的基本格式以及与JavaScript之间的转换

    JSON的基本格式以及与JavaScript之间的转换 近来,发现很多人写json格式的数据时,总是没有达到JSON的规范,虽然在语言要求不严格的情况下能够通过, 但是,难免会遇到这样那样的问题,到时 ...

  5. javascript获取select 的id与值

    javascript获取select 的id与值 <script type="text/javascript"> function showOptionId () { ...

  6. 每天多一点(2016.12.04)》Javascript隐式转换

    乱想 javascript为什么需要隐式转换?如果没有会出现什么情况? 找了一圈没有看到关于这个的讨论,只好自己研究了,可能不一定正确,自行辨知. 郁闷就是郁闷在好好的,为什么要搞个隐式转换,一般来讲 ...

  7. [译]JavaScript源码转换:非破坏式与再生式

    原文:http://ariya.ofilabs.com/2013/06/javascript-source-transformation-non-destructive-vs-regenerative ...

  8. 如何在脚本中获取进程ID(PID)

    我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本 ...

  9. Javascript隐式转换

    乱想 javascript为什么需要隐式转换?如果没有会出现什么情况? 找了一圈没有看到关于这个的讨论,只好自己研究了,可能不一定正确,自行辨知. 郁闷就是郁闷在好好的,为什么要搞个隐式转换,一般来讲 ...

随机推荐

  1. JTAG - General description of the TAP Controller states

    A transition between the states only occurs on the rising edge of TCK, and each state has a differen ...

  2. firedac调用ORACLE的存储过程

    firedac调用ORACLE的存储过程 EMB官方原文地址:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_Oracle_with_F ...

  3. WordPress主题开发:开启导航菜单功能

    步骤一:开启导航菜单功能 <?php /* register_nav_menu( $location, $description ) 函数功能:开启导航菜单功能 @参数 string $loca ...

  4. ASP.NET MVC:模块化/插件式架构实现(转载)

    I’ve recently spent quite a lot of time researching and prototyping different ways to create a plugi ...

  5. Android5.0 ListView特效的简单实现

    Android5.0中对于动画可所谓是情有独钟,在设计规范中大量展现了listview的动画,其实也就是一个目的:将items动画显示出来.这个看起来很炫的效果,其实实现也蛮简单的,我下面就来用动画简 ...

  6. 用IO流向存储器或SD卡中存入/读取字符的工具类

    FileManager package com.kale.utils; import java.io.BufferedReader; import java.io.File; import java. ...

  7. .NetCore中EFCore for MySql整理(二)

    一.简介 EF Core for MySql的官方版本MySql.Data.EntityFrameworkCore 目前正是版已经可用当前版本v6.10,对于以前的预览版参考:http://www.c ...

  8. Gradle 简介

    一.简介 Gradle 是 Android 现在主流的编译工具,虽然在Gradle 出现之前和之后都有对应更快的编译工具出现,但是 Gradle 的优势就在于它是亲儿子,Gradle 确实比较慢,这和 ...

  9. npm出错的解决方案

    npm show grpc # 返回版本号 # 安装旧版本: npm install grpc@1.2.0

  10. 关于Base64编码的理解

    版权声明:本文为[viclee]原创,如需转载请注明出处~ https://blog.csdn.net/goodlixueyong/article/details/52132250 之前在很多业务中都 ...