在JavaScript中,可以使用递归的方式将父子数组转换为JSON树结构。
以下是一个示例代码:
function arrayToTree(arr, parentId) {
var tree = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i].parent_id === parentId) {
var children = arrayToTree(arr, arr[i].id);
if (children.length > 0) {
arr[i].children = children;
}
tree.push(arr[i]);
}
}
return tree;
}
var arr = [
{ id: 1, name: "Parent 1", parent_id: 0 },
{ id: 2, name: "Child 1-1", parent_id: 1 },
{ id: 3, name: "Child 1-2", parent_id: 1 },
{ id: 4, name: "Parent 2", parent_id: 0 },
{ id: 5, name: "Child 2-1", parent_id: 4 },
];
var jsonTree = arrayToTree(arr, 0);
console.log(JSON.stringify(jsonTree));
上述代码使用了递归的方式来构建树结构。首先,定义了一个arrayToTree
函数,接收一个父子数组arr
和当前父节点的parentId
作为参数。
然后,遍历数组arr
,通过比较当前项的parent_id
与parentId
的关系,确定当前项是否是当前父节点的子节点。如果是,就递归地调用arrayToTree
函数来获取当前子节点的子树,然后将子树赋值给当前项的children
属性。
最后,将构建好的树结构返回。
通过调用arrayToTree
函数,并传入父子数组和根节点的parentId
(在这个例子中是0
),即可得到一个包含完整树结构的JSON对象。
请注意,以上代码只是一个示例,实际应用中可能需要根据数据结构的不同做适当的调整。
推荐腾讯云的相关产品:无
希望这个答案对你有帮助!
领取专属 10元无门槛券
手把手带您无忧上云