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. 虫趣:BAD POOL CALLER (par1: 0x20)

    [作者:张佩] [原文:http://www.yiiyee.cn/Blog/0x19-1/] 内核在管理内存的时候,为了提高内存使用效率,对于小片内存的申请(小于一个PAGE大小),都是通过内存池来操 ...

  2. ASP.NET Identity系列01,揭开神秘面纱

    早在2005年的时候,微软随着ASP.NET 推出了membership机制,十年磨一剑,如今的ASP.NET Identity是否足够强大,一起来体会. 在VS2013下新建项目,选择"A ...

  3. 在ASP.NET MVC中使用Knockout实践05,基本验证

    本篇体验View Model验证.Knockout的subscribe方法能为View Model成员注册验证规则. @{ ViewBag.Title = "Index"; Lay ...

  4. canvas使用1

    画直线: ? 1 2 3 4 5 6 7 8 9 10 11 var c = document.getElementById("myCanvas"); //不要忘写document ...

  5. C++关键字之virtual

    from://http://blog.csdn.net/xuyuanfan/article/details/9935533 在C++中是没有接口的,要真正实现java中的interface功能,需要使 ...

  6. CCConfiguration::sharedConfiguration()->loadConfigFile cocos2d-x 中文乱码问题及国际化解决方案

    from:://http://www.cnblogs.com/sunguangran/archive/2013/07/29/3222660.html 将显示文本单独保存为文本文件 在cocos2d-x ...

  7. “finally block does not complete normally”的警告解决

    但是,java里面不是可以保证finally一定会执行的么,为什么不可以在finally块做return??? 细细看道来: debug一下这个函数,就会惊讶的发现, 里面抛出的异常会被finally ...

  8. java.lang.IllegalArgumentException: No converter found for return value of type: class XXX.XXXX

    最近项目中用到fastjson做接口数据的转换,发现报这个错误了,环境是springMVC4,看到阿里的官网说是“ 如果是使用 XML 的方式配置 Spring MVC 的话,只需在 Spring M ...

  9. 天蝎第一季/全集Scorpion迅雷下载

    英文译名 Scorpion (第1季) (2014-秋季播出)CBS.本季看点:<天蝎>双名蝎子故事描述一个高深莫测的计算机专家和一群同样具备天才头脑的国际计算机黑客共同组建全球防御网络, ...

  10. crm操作产品实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages; /// <summary> ...