美文网首页
JS,实现一维数组JSON树结构的转换

JS,实现一维数组JSON树结构的转换

作者: xx_Zero | 来源:发表于2019-07-09 09:47 被阅读0次

    1、方法思路使用js数组自带的filter()方法;数据格式要求,父子节点通过,Id,ParentId进行关联。默认父结节id为0。

    样例数据:var jsonData = [{"id":"1","pid":"0","name":"家用电器"}, {"id":"4","pid":"1","name":"大家电"}, {"id":"5","pid":"1","name":"生活电器"}, {"id":"2","pid":"0","name":"服饰"}, {"id":"3","pid":"0","name":"化妆"}, {"id":"7","pid":"4","name":"空调"}, {"id":"8","pid":"4","name":"冰箱"}, {"id":"9","pid":"4","name":"洗衣机"}, {"id":"10","pid":"4","name":"热水器"}, {"id":"11","pid":"3","name":"面部护理"}, {"id":"12","pid":"3","name":"口腔护理"}, {"id":"13","pid":"2","name":"男装"}, {"id":"14","pid":"2","name":"女装"}, {"id":"15","pid":"7","name":"海尔空调"}, {"id":"16","pid":"7","name":"美的空调"}, {"id":"19","pid":"5","name":"加湿器"}, {"id":"20","pid":"5","name":"电熨斗"}];

    2、实现方法:

    function creatTreeData(list){

    var clonelist = JSON.parse(JSON.stringify(list));

    var result =clonelist.filter(function(father){

    var childlist = clonelist.filter(function(child){

    return father.id= child.pid;

    });

    if(childlist.length>0){

    father.children=childlist;

    }

    return father.pid ==0;

    });

    return result;

    }

    3、方法封装

    function treeData(list,id,pid,children){

    var clone = JSON.parse(JSON.stringify(list));

    return clone.filter(function(father){

    var childlist =clone.filter(function(child){

    return father[id]==child[pid];

    });

    if(childlist.length>0){

    father[children]=childlist;

    }

    return father[pid]==0;

    });

    }

    相关文章

      网友评论

          本文标题:JS,实现一维数组JSON树结构的转换

          本文链接:https://www.haomeiwen.com/subject/dhdtkctx.html