要将一个数组的 JSON 数据添加到已有的树形数据中,可以使用递归方法遍历树形数据,并将数组中的每个元素插入到合适的位置。以下是一个使用 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
数组中。