遍历平面JS数组并将其转换为嵌套的父/子结构的过程通常称为数组扁平化和数组展开。在JavaScript中,可以使用递归和迭代两种方式实现这个转换过程。
以下是使用递归方法将平面数组转换为嵌套结构的示例代码:
function convertToNestedStructure(flatArray, parentId) {
var nestedArray = [];
for (var i = 0; i < flatArray.length; i++) {
if (flatArray[i].parentId === parentId) {
var children = convertToNestedStructure(flatArray, flatArray[i].id);
if (children.length) {
flatArray[i].children = children;
}
nestedArray.push(flatArray[i]);
}
}
return nestedArray;
}
// 示例平面数组
var flatArray = [
{ id: 1, name: 'Parent 1', parentId: null },
{ id: 2, name: 'Child 1', parentId: 1 },
{ id: 3, name: 'Child 2', parentId: 1 },
{ id: 4, name: 'Grandchild 1', parentId: 2 },
{ id: 5, name: 'Parent 2', parentId: null },
];
var nestedArray = convertToNestedStructure(flatArray, null);
console.log(nestedArray);
该示例中的flatArray
是一个平面数组,包含了每个元素的id
、name
和parentId
属性。parentId
为null
的元素被认为是顶层父级元素。在convertToNestedStructure
函数中,我们使用递归的方式遍历数组,并根据每个元素的parentId
属性找到其子元素,并将其添加到children
属性中。最后,我们返回转换后的嵌套数组。
这种转换方式可以用于处理诸如分类目录、评论回复等需要展示层级结构的数据。
关于数组扁平化和数组展开的更多信息,以及其他相关的JavaScript开发技术和应用场景,您可以参考腾讯云提供的开发者文档:
领取专属 10元无门槛券
手把手带您无忧上云