要将一个数组的 JSON 数据添加到已有的树形数据中,可以使用递归方法遍历树形数据,并将数组中的每个元素插入到合适的位置。以下是一个使用 JavaScript 实现的示例:
javascript
function insertArrayToTree(tree, arrayData) {
if (!tree || !arrayData) return;
for (let i = 0; i < tree.length; i++) {
if (tree[i].id === arrayData[0].parentId) {
tree[i].children = tree[i].children || [];
for (let j = 0; j < arrayData.length; j++) {
tree[i].children.push(arrayData[j]);
}
return;
} else if (tree[i].children && tree[i].children.length > 0) {
insertArrayToTree(tree[i].children, arrayData);
}
}
}
// 示例
const tree = [
{
id: 1,
name: '节点1',
children: [
{
id: 2,
name: '节点1-1',
children: [],
},
],
},
{
id: 3,
name: '节点2',
children: [],
},
];
const arrayData = [
{
id: 4,
name: '节点1-2',
parentId: 2,
},
{
id: 5,
name: '节点1-3',
parentId: 2,
},
];
insertArrayToTree(tree, arrayData);
console.log(tree);
这个示例中,insertArrayToTree
函数接受两个参数:一个是已有的树形数据 tree
,另一个是要插入的数组数据 arrayData
。函数会遍历树形数据,找到与数组数据第一个元素的父节点,并将数组中的每个元素插入到父节点的 children
数组中。