首页 > Web开发 > 详细

js json 树转json方法

时间:2019-07-04 19:21:43      阅读:82      评论:0      收藏:0      [点我收藏+]

var tree = [{
            id: "parent",
            parentId: "",
            name: "一级节点",
            childs: [{
                id: "child1",
                parentId: "parent",
                name: "一级节点",
                childs: []
            }, {
                id: "child2",
                parentId: "parent",
                name: "一级节点",
                childs: []
            }]
        }]

        function adsa(tree, key) {
            return tree.reduce(function(con, item) {
                var callee = arguments.callee;
                con.push(item);
                if(item[key] && item[key].length > 0) item[key].reduce(callee, con);
                return con;
            }, []).map(function(item) {
                item[key] = [];
                return item;
            })
        }
        var arr = adsa(tree, ‘childs‘); //输出转换后数组
        console.log(arr);

function jsonToArray(nodes) {
          var r=[];
          if (Array.isArray(nodes)) {
            for (var i=0, l=nodes.length; i<l; i++) {
              r.push(nodes[i]); // 取每项数据放入一个新数组
              if (Array.isArray(nodes[i]["childs"])&&nodes[i]["childs"].length>0)
               // 若存在children则递归调用,把数据拼接到新数组中,并且删除该children
                r = r.concat(jsonToArray(nodes[i]["childs"]));
                  delete nodes[i]["childs"]
            }
          }
          return r;
        }

jsonToArray(tree)

js json 树转json方法

原文:https://www.cnblogs.com/zyb-722/p/11134159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!