当前位置: 首页 > article >正文

前端递归获取树(不限制层级)结构下的某个字段并组成数组返回

一、问题
后端需要把一个层级不确定的树下的code组成数组以入参的形式进行返回

二、递归处理树结构

function getCodes(data) {
    const codes = [];

    // 内部递归函数
    function traverse(node) {
        if (node.unitCode) {
            codes.push(node.code); // 添加当前节点的 unitCode
        }
        if (node.children) {
            node.children.forEach(traverse); // 递归遍历子节点
        }
    }

    data.forEach(traverse); // 从根节点开始遍历

    return codes; // 返回收集到的 codes
}

// 示例数据
const data = [
    {
        "code": "xxx1",
        "parentCode": "pxx1",
        "name": "父级",
        "level": 2,
        "children": [
            {
                "code": "xxx2",
                "parentCode": "pxx2",
                "name": "子集",
                "level": 3,
                "children": null
            },
            // 省略其他节点...
        ]
    },
    // 省略其他区块...
];

// 调用方法并打印结果
const codeArray= getCodes(data);
console.log(codeArray);

http://www.kler.cn/a/387649.html

相关文章:

  • VMware虚拟机安装Win7专业版保姆级教程(附镜像包)
  • 闯关leetcode——3174. Clear Digits
  • 区块链技术在电子政务中的应用
  • 【大数据技术基础 | 实验十】Hive实验:部署Hive
  • 人工智能的前沿研究方向与未来发展趋势
  • 弹性盒子布局(Flexbox)详细介绍
  • WPF 打包
  • Vue前端开发之自定义动画
  • 如何在 Android 14 中调整字体最大 大小 和 显示最大一格 大小
  • 【AI技术】Edge-TTS 国内使用方法
  • 问题排查:C++ exception with description “getrandom“ thrown in the test body
  • Ubuntu实现双击图标运行自己的应用软件
  • Windows系统中Oracle VM VirtualBox的安装
  • 2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto- WriteUp
  • 计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
  • 个性化培训:扫码分组指南
  • ResNet 残差网络 (乘法→加法的思想 - 残差连接是所有前沿模型的标配) + 代码实现 ——笔记2.16《动手学深度学习》
  • FPGA时序分析和约束学习笔记(4、IO传输模型)
  • Linux命令学习,git命令
  • Node-Red二次开发:各目录结构说明及开发流程
  • Mac intel 安装IDEA激活时遇到问题 jetbrains.vmoptions.plist: Permission denied
  • 量化交易系统开发-实时行情自动化交易-Okex行情交易数据
  • Spark的Standalone集群环境安装
  • arcgis pro 学习笔记
  • 代码随想录算法训练营Day58 | 卡玛网 110.字符串接龙、卡玛网 105.有向图的完全可达性、卡玛网 106.岛屿的周长
  • MyBatisPlus 用法详解