js 递归取出想要的数据。

自先沉稳UP 2021-12-24 12:00:25
        var obj = [
            {
                "id": 1,
                "name": "大天使1",
                "children": [{
                        "id": 2,
                        "name": "大天使2",
                        "children": [{
                                "id": 3,
                                "name": "大天使3",
                                "children": [{
                                    "id": 4,
                                    "name": "大天使4",
                                    "children": []
                                }]
                        }]
                    }]
            },
            {
                "id": 5,
                "name": "大天使5",
                "children": []
            },
            {
                "id": 6,
                "name": "大天使6",
                "children": []
            }
        ]

需求是这样的, 假如上边是后台返回的数据,我要把数据变成一层, 也就是想要这样:

var obj = [
            {"id": 1, "name": "大天使1"},
            {"id": 2, "name": "大天使2"},
            {"id": 3, "name": "大天使3"},
            {"id": 4, "name": "大天使4"},
            {"id": 5, "name": "大天使5"},
            {"id": 6, "name": "大天使6"}
        ]

请问要如何递归处理?

...全文
137 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
无聊的星期天 2021-12-24
  • 打赏
  • 举报
回复

recursion = function (data, children = 'children', arr = []) {
for (let i = 0; i < data.length; i++) {
arr.push({ id: data[i].id, name: data[i].name })
if (data[i][children] && data[i][children].length) {
recursion(data[i][children], (children = 'children'), arr)
}
}
return arr
}

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧