以下是一个基于 JavaScript 的示例代码,用于将数组转换为树形结构:
function arrayToTree(arr) {
const map = {};
const tree = [];
arr.forEach(item => {
// 创建节点
map[item.id] = { ...item, children: [] };
});
Object.values(map).forEach(item => {
if (item.parentId !== null) {
// 将子节点添加到父节点的children数组中
map[item.parentId].children.push(item);
} else {
// 根节点直接添加到tree数组中
tree.push(item);
}
});
return tree;
}
这个实现假设输入的数组中每个元素都有id和parentId属性,表示节点的唯一标识和父节点的标识。它使用了一个映射表map来存储每个节点,并通过遍历数组将各个节点连接起来。
你可以使用类似以下方式来调用函数并打印结果:
const arr = [
{ id: 1, parentId: null, name: 'Root' },
{ id: 2, parentId: 1, name: 'Node A' },
{ id: 3, parentId: 1, name: 'Node B' },
{ id: 4, parentId: 2, name: 'Node A-1' },
];
const tree = arrayToTree(arr);
console.log(tree);
输出结果会显示转换后的树形结构。请注意,这只是一个简单的示例实现,可能无法处理所有特殊情况。如果你有其他需求或者需要更复杂的实现,请提供更详细的要求。
内容由零声教学AI助手提供,问题来源于学员提问




