JavaScript 将树形结构转换一维数组(递归)

编程入门 行业动态 更新时间:2024-10-20 03:28:34

JavaScript 将树形结构转换一维数组(<a href=https://www.elefans.com/category/jswz/34/1771140.html style=递归)"/>

JavaScript 将树形结构转换一维数组(递归)

将树形结构转换为一维数组是一个常见的任务,通常使用递归或迭代的方法来完成。具体案例实现如下:

function flattenTree(treeData) {const result = [];function traverse(node) {    if (node.children && node.children.length > 0) {for (const child of node.children) {traverse(child);}}delete node.childrenresult.push(node);}traverse(treeData);return result;
}// 示例数据结构
const treeData = {name: "A",children: [{name: "B",children: [{name: "D",children: [],},{name: "E",children: [],},],},{name: "C",children: [{name: "F",children: [],},],},],
};const flattenedArray = flattenTree(treeData);
console.log(flattenedArray);

flattenTree 函数递归地遍历树的每个节点,并将节点添加到结果数组中。如果节点具有子节点,它会继续遍历子节点。最终,你将得到一个包含树中所有节点的一维数组。

代码实现如下:

getOneArr (data) {let newData = []const callback = (item) => {(item.children || (item.children = [])).map(v => {callback(v)})delete item.childrennewData.push(item)}data.map(v => callback(v))return newData
},const flattenedArray = getOneArr(treeData);
console.log(flattenedArray);

getOneArr 使用了递归方法,它接受一个包含树形结构数据的数组 data,并将其转换为一维数组。将数据结构从多维树状结构变成一维数组,然后删除了原始数据中的子节点,最后输出一个一维数组,其中包含了所有节点的数据,同时删除了子节点属性,使其成为一个扁平的结构。

更多推荐

JavaScript 将树形结构转换一维数组(递归)

本文发布于:2023-12-07 01:28:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1669657.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:递归   数组   结构   JavaScript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!