前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端常用函数库

前端常用函数库

原创
作者头像
用户4396583
修改2024-07-18 15:19:55
380
修改2024-07-18 15:19:55
举报
文章被收录于专栏:javascript

1. 树状结构数据搜索

树状结构数据中搜索并返回匹配特定 branchName 的对象,我们可以编写一个递归函数。下面是一个用 JavaScript 编写的示例函数,它接受树状数据和目标 branchName 作为参数,并返回找到的对象(如果有多个匹配,可以返回一个数组)。

代码语言:javascript
复制
function searchTreeForBranchName(treeData, targetBranchName) {
  let results = [];
  function search(node) {
    // 如果当前节点的 branchName 匹配目标,将其添加到结果数组中
    if (node.branchName === targetBranchName) {
      results.push(node);
    }
    // 如果当前节点有 children 属性且是一个数组,遍历子节点
    if (Array.isArray(node.children)) {
      node.children.forEach(child => {
        search(child); // 递归搜索子节点
      });
    }
  }
  // 从根节点开始搜索
  treeData.forEach(rootNode => {
    search(rootNode);
  });
  return results;
}

// 示例使用
const treeData = [
  {
    "craftId": "1737034670929321985",
    "craftName": "厌氧单元",
    "saveDigit": 2,
    "delFlag": 0,
    "deviceId": "1742786513379852289",
    "deviceName": "厌氧罐-01",
    "valleyElecPrice": 0,
    "orgId": "4",
    "updateBy": null,
    "children": [
      {
        "craftId": "1737673712465338369",
        "craftName": "预处理单元",
        "saveDigit": 0,
        "delFlag": 0,
        "deviceId": "",
        "deviceName": "",
        "valleyElecPrice": 0,
        "orgId": "4",
        "updateBy": null,
        "children": null,
        "sortBy": 1,
        "id": "1800770518751703041",
        "meterAutomatic": "2",
        "variableName": "",
        "flatElecPrice": 0,
        "elecPrice": 1.5,
        "factoryId": "1740175059734216705",
        "branchName": "支路1-1",
        "updateTime": null,
        "spikeElecPrice": 0,
        "variableId": "",
        "parentId": "1742837293533167618",
        "electricType": "1",
        "peakElecPrice": 0,
        "createBy": "4-admin",
        "createTime": "2024-06-12 14:02:03",
        "doubleRate": "2"
      }
    ],
    "sortBy": 1,
    "id": "1742837293533167618",
    "meterAutomatic": "2",
    "variableName": "",
    "flatElecPrice": 0,
    "elecPrice": 1.5,
    "factoryId": "1740175059734216705",
    "branchName": "支路1",
    "updateTime": null,
    "spikeElecPrice": 0,
    "variableId": null,
    "parentId": "0",
    "electricType": "1",
    "peakElecPrice": 0,
    "createBy": "4-admin",
    "createTime": "2024-01-04 17:16:06",
    "doubleRate": "2",
    "electricType_dictText": "均值电价"
  }
];
const targetBranchName = "支路1";
const foundNodes = searchTreeForBranchName(treeData, targetBranchName);

console.log(foundNodes);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 树状结构数据搜索
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档