写一个递归每次请求回来是一个数组对象 将后一次的数组对象 比对最开始的数组 id 相同 添加到对应id下的child下面 无限级
时间: 2024-02-27 09:58:03 浏览: 22
可以参考下面的代码实现:
```
function addChildren(data, children) {
for (let i = 0; i < data.length; i++) {
let item = data[i];
for (let j = 0; j < children.length; j++) {
let child = children[j];
if (child.parentId === item.id) {
if (!item.children) {
item.children = [];
}
item.children.push(child);
addChildren([child], children);
}
}
}
}
function recursiveRequest(data, callback) {
// 发送请求获取数据,这里省略具体实现
let result = []; // 假设请求回来的数据存放在result中
if (result.length > 0) {
addChildren(data, result);
callback(data);
recursiveRequest(data, callback);
}
}
```
其中,addChildren函数实现了将子项添加到对应父项的children属性下面,并递归处理子项的子项。recursiveRequest函数实现了递归请求数据,并在每次请求回来后调用addChildren函数将新数据添加到原始数据中。需要注意的是,这里的callback函数用于处理最终的结果,可以根据具体需求进行修改。