JavaScript

超轻量级php框架startmvc

javascript将list转换成树状结构的实例

更新时间:2020-06-03 12:12:01 作者:startmvc
如下所示:/***将list装换成tree*@param{Object}myId数据主键id*@param{Object}pId数据关联的父级id*@param

如下所示:


/**
 * 将list装换成tree
 * @param {Object} myId 数据主键id
 * @param {Object} pId 数据关联的父级id
 * @param {Object} list list集合
 */
 function listToTree(myId,pId,list){
 function exists(list, parentId){
 for(var i=0; i<list.length; i++){
 if (list[i][myId] == parentId) return true;
 }
 return false;
 }
 
 var nodes = [];
 // get the top level nodes
 for(var i=0; i<list.length; i++){
 var row = list[i];
 if (!exists(list, row[pId])){
 nodes.push(row);
 }
 }
 
 var toDo = [];
 for(var i=0; i<nodes.length; i++){
 toDo.push(nodes[i]);
 }
 while(toDo.length){
 var node = toDo.shift(); // the parent node
 // get the children nodes
 for(var i=0; i<list.length; i++){
 var row = list[i];
 if (row[pId] == node[myId]){
 //var child = {id:row.id,text:row.name};
 if (node.children){
 node.children.push(row);
 } else {
 node.children = [row];
 }
 toDo.push(row);
 }
 }
 }
 return nodes;
 }
 
 var list=[
 {"ids":1,"parendId":0,"name":"Foods",url:"wwww"},
 {"ids":2,"parentId":1,"name":"Fruits"},
 {"ids":3,"parentId":1,"name":"Vegetables"},
 {"ids":4,"parentId":2,"name":"apple"},
 {"ids":5,"parentId":2,"name":"orange"},
 {"ids":6,"parentId":3,"name":"tomato"},
 {"ids":7,"parentId":3,"name":"carrot"},
 {"ids":8,"parentId":3,"name":"cabbage"},
 {"ids":9,"parentId":3,"name":"potato"},
 {"ids":10,"parentId":3,"name":"lettuce"},
 
 {"ids":11,"parendId":0,"name":"Foods"},
 {"ids":12,"parentId":11,"name":"Fruits"},
 {"ids":13,"parentId":11,"name":"Vegetables"},
 {"ids":14,"parentId":12,"name":"apple"},
 {"ids":15,"parentId":12,"name":"orange"},
 {"ids":16,"parentId":13,"name":"tomato"},
 {"ids":17,"parentId":13,"name":"carrot"},
 {"ids":18,"parentId":13,"name":"cabbage"},
 {"ids":19,"parentId":13,"name":"potato"},
 {"ids":20,"parentId":13,"name":"lettuce"}
 ];
 
 console.log(JSON.stringify(listToTree("ids","parentId",list)));
 console.log(listToTree("ids","parentId",list));

以上这篇javascript将list转换成树状结构的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

javascript 树状图