是一种常见的数据结构操作,它将一个包含父子关系的数组列表转换为树形结构。这种操作通常在前端开发中用于处理层级结构的数据,例如菜单、组织架构等。
创建数组树的过程可以分为以下几个步骤:
下面是一个示例代码,用于从数组列表创建数组树:
function createArrayTree(arrayList) {
const map = {}; // 哈希表用于存储每个元素的ID和对应的子节点数组
const result = []; // 结果数组
// 第一次遍历,记录每个元素的父子关系
for (const item of arrayList) {
const { id, parentId } = item;
if (!map[id]) {
map[id] = { children: [] };
}
map[id] = { ...item, children: map[id].children };
const parent = parentId || '-';
if (!map[parent]) {
map[parent] = { children: [] };
}
map[parent].children.push(map[id]);
}
// 第二次遍历,找到根节点并添加到结果数组中
for (const item of arrayList) {
if (!item.parentId) {
result.push(map[item.id]);
}
}
return result;
}
// 示例数据
const arrayList = [
{ id: '1', name: 'Node 1', parentId: null },
{ id: '2', name: 'Node 2', parentId: '1' },
{ id: '3', name: 'Node 3', parentId: '1' },
{ id: '4', name: 'Node 4', parentId: '2' },
{ id: '5', name: 'Node 5', parentId: '2' },
{ id: '6', name: 'Node 6', parentId: '3' },
];
const arrayTree = createArrayTree(arrayList);
console.log(arrayTree);
上述代码将示例数据转换为以下数组树结构:
[
{
id: '1',
name: 'Node 1',
parentId: null,
children: [
{
id: '2',
name: 'Node 2',
parentId: '1',
children: [
{ id: '4', name: 'Node 4', parentId: '2', children: [] },
{ id: '5', name: 'Node 5', parentId: '2', children: [] },
],
},
{
id: '3',
name: 'Node 3',
parentId: '1',
children: [
{ id: '6', name: 'Node 6', parentId: '3', children: [] },
],
},
],
},
]
这样,我们就成功地从数组列表创建了数组树。
在腾讯云的产品中,可以使用云数据库CDB存储数组列表数据,使用云函数SCF进行数据处理和转换,使用云开发TCB进行前端开发和部署。具体产品介绍和链接如下:
通过使用以上腾讯云产品,可以实现从数组列表创建数组树的功能,并且获得稳定可靠的云计算服务。
领取专属 10元无门槛券
手把手带您无忧上云