编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

前端过滤树形结构多余的字段(tree 过滤)

wxchong 2024-08-24 01:39:45 开源技术 8 ℃ 0 评论

如果我们暂时不考虑类型安全,可以直接在JavaScript中使用简洁的方式来实现。

以下是简化版的实现:

function filterTreeData(data, keepFields) {
  function processNode(node) {
    const newNode = {};

    for (let key in node) {
      if (keepFields.includes(key)) {
        newNode[key] = node[key];
      }
      
      // 特别处理children字段
      if (key === 'children' && Array.isArray(node[key])) {
        newNode[key] = node[key].map(child => processNode(child));
      }
    }

    return newNode;
  }

  return data.map(node => processNode(node));
}

// 示例用法
const originalData = [
  // ...
];

const keptFields = ['id', 'title']; // 指定要保留的字段
const filteredData = filterTreeData(originalData, keptFields);

console.log(filteredData);

这个简化版本的filterTreeData函数通过遍历节点的所有属性,仅复制包含在keepFields中的字段到新对象中。同时,它也递归处理子节点以保持树形结构。请注意,这种方法在TypeScript中不会提供严格的类型检查,但在实际运行时可以达到过滤树形结构多余字段的效果。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表