该方法可以将平级结构的数据转化为树形结构的数据

// 里面用到了lodash,第三方的方法,如果不了解可以先学习一下

export default {

    // 平级数据变成树形数据

    datatree: (datas, idprop, pIdprop) => {

        if (!idprop) {

            idprop = 'id';

        }

        if (!pIdprop) {

            pIdprop = 'parentId';

        }

        let nodes = [],

            c = function (obj) {

                let _c = [];

                for (let i = 0; i < datas.length; i++) {

                    let _d = _.cloneDeep(datas[i]);

                    if (_d[pIdprop + ''] == obj[idprop + '']) {

                        _c.push(_d);

                        c(_d);

                    }

                }

                if (_c.length) {

                    obj.children = _c;

                }

            };

        for (let i = 0; i < datas.length; i++) {

            let _d = _.cloneDeep(datas[i]);

            if ((!_d[pIdprop + ''] && _d[pIdprop + ''] != '') || (!_.result(_.find(datas, {

                [idprop]: _d[pIdprop + '']

            }), idprop))) {

                c(_d);

                nodes.push(_d);

            }

        }

        return nodes;

    },

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 夜莺2517阅读 127,761评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,966评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,607评论 28 53
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 2,653评论 2 9