要把平行数据转成树形结构,可以使用递归的方法。假设平行数据是一个数组,每个元素包含一个唯一的id和一个parent_id表示其父节点的id。以下是一个示例的JavaScript代码:\n\njavascript\nfunction convertToTree(data) {\n // 使用一个字典保存每个节点的引用\n const dict = {};\n\n // 创建根节点\n const root = { children: [] };\n\n // 遍历数据,将每个节点添加到字典中\n data.forEach(item => {\n dict[item.id] = { ...item, children: [] };\n });\n\n // 遍历数据,将每个节点添加到其父节点的children数组中\n data.forEach(item => {\n const parent = dict[item.parent_id];\n if (parent) {\n parent.children.push(dict[item.id]);\n } else {\n root.children.push(dict[item.id]);\n }\n });\n\n return root;\n}\n\n\n使用示例:\n\njavascript\nconst data = [\n { id: 1, parent_id: null },\n { id: 2, parent_id: 1 },\n { id: 3, parent_id: 1 },\n { id: 4, parent_id: 2 },\n { id: 5, parent_id: 3 }\n];\n\nconst tree = convertToTree(data);\nconsole.log(tree);\n\n\n输出结果:\n\n\n{\n children: [\n {\n id: 1,\n parent_id: null,\n children: [\n {\n id: 2,\n parent_id: 1,\n children: [\n { id: 4, parent_id: 2, children: [] }\n ]\n },\n {\n id: 3,\n parent_id: 1,\n children: [\n { id: 5, parent_id: 3, children: [] }\n ]\n }\n ]\n }\n ]\n}\n\n\n这样就将平行数据转成了树形结构。

JavaScript 递归算法实现平行数据转树形结构

原文地址: https://www.cveoy.top/t/topic/pZTW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录