当前位置:首页 > JavaScript

js实现树形结构

2026-04-04 03:09:43JavaScript

实现树形结构的方法

在JavaScript中实现树形结构通常涉及创建节点对象,并通过递归或迭代方式构建层级关系。以下是几种常见方法:

使用对象和数组表示树

树的基本结构可由对象和数组组合实现,每个节点包含数据和子节点引用:

js实现树形结构

const tree = {
  value: 'root',
  children: [
    {
      value: 'child1',
      children: [
        { value: 'grandchild1', children: [] },
        { value: 'grandchild2', children: [] }
      ]
    },
    {
      value: 'child2',
      children: []
    }
  ]
};

类实现树节点

通过类定义树节点,便于扩展方法:

class TreeNode {
  constructor(value) {
    this.value = value;
    this.children = [];
  }

  addChild(childNode) {
    this.children.push(childNode);
  }
}

const root = new TreeNode('root');
const child1 = new TreeNode('child1');
root.addChild(child1);

递归遍历树

深度优先遍历示例:

js实现树形结构

function traverse(node) {
  console.log(node.value);
  node.children.forEach(child => traverse(child));
}
traverse(tree);

扁平数组转树结构

将扁平数组转换为层级树:

function buildTree(items, parentId = null) {
  return items
    .filter(item => item.parentId === parentId)
    .map(item => ({
      ...item,
      children: buildTree(items, item.id)
    }));
}

const flatArray = [
  { id: 1, parentId: null, name: 'root' },
  { id: 2, parentId: 1, name: 'child1' },
  { id: 3, parentId: 1, name: 'child2' }
];
const tree = buildTree(flatArray);

常用树操作

查找节点:

function findNode(root, targetValue) {
  if (root.value === targetValue) return root;
  for (const child of root.children) {
    const found = findNode(child, targetValue);
    if (found) return found;
  }
  return null;
}

这些方法覆盖了树形结构的基本实现和常见操作,可根据具体需求选择或组合使用。

标签: 结构js
分享给朋友:

相关文章

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…