请教一个JS写法的问题

有如下一个树形结构数据,同时有一个ID数组[35,4,32],根据这个数组让下面树形结构数据除了 ID是35,4,32的都添加一个字段disabled:true,求教大神写法。

    [
        {
            "id": 1,
            "parent_id": 0,
            "department_name": "皮包公司",
            "children": [
                {
                    "id": 35,
                    "parent_id": 1,
                    "department_name": "财务部",
                },
                {
                    "id": 4,
                    "parent_id": 1,
                    "department_name": "营销部",
                    "children": [
                        {
                            "id": 47,
                            "parent_id": 4,
                            "department_name": "营销美女部",
                        }
                    ]
                },
                {
                    "id": 32,
                    "parent_id": 1,
                    "department_name": "网络部",
                    "children": [
                        {
                            "id": 42,
                            "parent_id": 3,
                            "department_name": "美工",
                        },
                        {
                            "id": 36,
                            "parent_id": 3,
                            "department_name": "前端开发",

                        },
                        {
                            "id": 41,
                            "parent_id": 3,
                            "department_name": "后端开发",
                        },
                        {
                            "id": 43,
                            "parent_id": 3,
                            "department_name": "编辑",
                        }
                    ]
                },
                {
                    "id": 37,
                    "parent_id": 1,
                    "department_name": "仓储部",
                },
            ]
        }
    ]
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案
function addDisabled(arr,ids) {
        for (let i = 0; i < arr.length; i++) {
            const element = arr[i]
            if (ids.includes(element.id)) {
                element.disabled = true;
            }
            if (element.children && element.children.length > 0) {
                addDisabled(element.children, ids);
            }
        }
        return arr;
    }
4年前 评论
讨论数量: 1
function addDisabled(arr,ids) {
        for (let i = 0; i < arr.length; i++) {
            const element = arr[i]
            if (ids.includes(element.id)) {
                element.disabled = true;
            }
            if (element.children && element.children.length > 0) {
                addDisabled(element.children, ids);
            }
        }
        return arr;
    }
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!