js整理成树结构

在做项目的过程中,有个需求,将一段对象数组的数据整理成树形结构。刚好这段时间在看函数式编程,所以试着用函数式写了下:
从服务端获取到的数据格式,如下:

 const data = [
        {"id": "1", "parent": "0","name": "侠客行网络3001"},
        {"id": "2", "parent": "0","name": "洛江金玉2号会员"},
        {"id": "3", "parent": "0","name": "洛江金玉3号会员"},
        {"id": "4", "parent": "1","name": "洛江金玉4号会员"},
        {"id": "5", "parent": "1","name": "洛江金玉5号会员"},
        {"id": "6", "parent": "4","name": "洛江金玉6号会员"},
        {"id": "7", "parent": "5","name": "洛江金玉7号会员"},
        {"id": "8", "parent": "5","name": "洛江金玉8号会员"},
    ]

接下来写两个函数,如下:

const getChildren = (data)=>{
    return function (item) {
        const arr = []
        data.forEach((value)=>{
            if(value.parent == item.id){
                arr.push(value);
            }
        });
        return arr;
    }
}

export const generateTree = (data) =>{
    const arr = [];
    data.map((item)=>{
        const list = getChildren(data)(item);
        if(list.length > 0){
            item['child'] = list;
        }
        if(item.type == 0){
            arr.push(item);
        }
    })
    return arr;
}

在组件里面调用 generateTree(data),写的感觉不是很到位,见笑了!

转载于:https://www.cnblogs.com/tony-xf/p/7359434.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值