js递归数据操作,非常复杂,无法解决。

发布于 2022-09-06 13:19:27 字数 7075 浏览 22 评论 0

1:因为和用的angular,输出传回时,需要满足后台要求的数据格式。在前台操作的时候,为了满足primeng的使用数据格式,导致数据格式不同,求大神帮忙写一下,已经耗费了一天时间。
2:这是我现在使用的数据,需要可以无限嵌套下去!

var arr = [ {"children": [

            {
                "children": [
                    {
                        "children": [
                            {
                                "children": [
                                    {
                                        "children": null,
                                        "data": {
                                            "data": {
                                                "start": null,
                                                "limit": null,
                                                "orderCol": null,
                                                "zdxmc": "五",
                                        
                                            }
                                        }
                                    }
                                ],
                                "data": {
                                    "start": null,
                                    "limit": null,
                                    "orderCol": null,
                                    "zdxmc": "四",
                       
                                }
                            }
                        ],
                        "data": {
                            "start": null,
                            "limit": null,
                            "orderCol": null,
                            "zdxmc": "三",
                     
                        }
                    }
                ],
                "data": {
                    "start": null,
                    "limit": null,
                    "orderCol": null,
                    "zdxmc": "er",
           
                }
            }
        ],
        "data": {
            "start": null,
            "limit": null,
            "orderCol": null,
            "zdxmc": "一",
    
        }
    },
    {
        "children": [
            {
                "children": [
                    {
                        "children": [
                            {
                                "children": [
                                    {
                                        "children": null,
                                        "data": {
                                            "data": {
                                                "start": null,
                                                "limit": null,
                                                "orderCol": null,
                                                "zdxmc": "五",
                                    
                                            }
                                        }
                                    }
                                ],
                                "data": {
                                    "start": null,
                                    "limit": null,
                                    "orderCol": null,
                                    "zdxmc": "四",
                       
                                }
                            }
                        ],
                        "data": {
                            "start": null,
                            "limit": null,
                            "orderCol": null,
                            "zdxmc": "三",
                   
                        }
                    }
                ],
                "data": {
                    "start": null,
                    "limit": null,
                    "orderCol": null,
                    "zdxmc": "er",
                   
                }
            }
        ],
        "data": {
            "start": null,
            "limit": null,
            "orderCol": null,
            "zdxmc": "二",
            
        }
    }
];

这是后台需要的数据格式。

  var resArr = [
    {
        "start": null,
        "limit": null,
        "orderCol": null,
        "zdxmc": "一",
       
        "children": [
            {
                "start": null,
                "limit": null,
                "orderCol": null,
                "zdxmc": "er",
             
                "children": [
                    {
                        "start": null,
                        "limit": null,
                        "orderCol": null,
                        "zdxmc": "三",
                       
                        "children": [
                            {
                                "start": null,
                                "limit": null,
                                "orderCol": null,
                                "zdxmc": "四",
                           
                                "children": [
                                    {
                                        "data": {
                                            "start": null,
                                            "limit": null,
                                            "orderCol": null,
                                            "zdxmc": "五",
                                   
                                        },
                                        "children": null
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    },
    {
        "start": null,
        "limit": null,
        "orderCol": null,
        "zdxmc": "二",
 
        "children": [
            {
                "start": null,
                "limit": null,
                "orderCol": null,
                "zdxmc": "er",
             
                "children": [
                    {
                        "start": null,
                        "limit": null,
                        "orderCol": null,
                        "zdxmc": "三",
                 
                        "children": [
                            {
                                "start": null,
                                "limit": null,
                                "orderCol": null,
                                "zdxmc": "四",
                           
                                "children": [
                                    {
                                        "data": {
                                            "start": null,
                                            "limit": null,
                                            "orderCol": null,
                                            "zdxmc": "五",
                                       
                                        },
                                        "children": null
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    }
];

3:搞了一天了,还是没有解决掉,跪求帮忙。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红尘作伴 2022-09-13 13:19:27
let map = item => {
    var data = {};
    Object.keys(item['data']).forEach(key => data[key] = item['data'][key]);
    // data['children'] = (item['children'] || []).map(map);
    // 才发现你目标数据结构里要保留 null,改一下。
    data['children'] = item['children'] ? item['children'].map(map) : null;
    return data;
}

let resArr = arr.map(map);

测试了一下应该可以。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文