You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解析嵌套JSON树并遍历所有节点提取checked属性实现对应业务逻辑

实现方案

因为你的数据是多层嵌套的树形结构,用递归遍历的方式最方便,能覆盖所有层级的节点,不需要提前知道嵌套深度。

方法1:递归遍历实现

// 定义递归遍历函数
function traverseNode(node) {
  // 先处理当前节点:判断checked是否为true
  if (node.checked) {
    // 这里替换为你要执行的业务逻辑即可
    console.log(`节点ID:${node.id},节点名称:${node.name} 已选中`);
  }
  // 遍历当前节点的所有子节点,递归调用遍历函数
  if (node.children && node.children.length > 0) {
    node.children.forEach(childNode => {
      traverseNode(childNode);
    });
  }
}

// 调用入口:传入你拿到的根节点数据
var data = this.flatData;
traverseNode(data);

方法2:非递归广度优先遍历(适合嵌套极深的场景,避免栈溢出)

var data = this.flatData;
// 用队列存储待遍历的节点
let nodeQueue = [data];
while (nodeQueue.length > 0) {
  // 取出队首节点
  let currentNode = nodeQueue.shift();
  // 处理当前节点
  if (currentNode.checked) {
    // 这里替换为你要执行的业务逻辑即可
    console.log(`节点ID:${currentNode.id},节点名称:${currentNode.name} 已选中`);
  }
  // 把当前节点的子节点加入队列末尾,待后续遍历
  if (currentNode.children && currentNode.children.length > 0) {
    nodeQueue.push(...currentNode.children);
  }
}

两种方法都可以覆盖所有层级的节点,普通场景下优先选择代码更简洁的递归方案即可。

内容的提问来源于stack exchange,提问作者Islem Talbi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:27:01