方法
extractChildren(data) {
let result = [];
for (let item of data) {
if (item.children) {
result.push(...item.children);
result.push(...extractChildren(item.children));
}
}
return result;
},
extractChildren 是一个递归方法,它的作用是从一个树形结构的数据中提取所有的子节点,并将这些子节点放入一个数组中。
这个方法接收一个参数 data,这个参数应该是一个数组,数组的每个元素都是一个对象,这个对象可能有一个 children 属性,这个属性也是一个数组,包含了这个对象的子节点。
方法的工作原理如下:
1.创建一个空数组 result,用于存储所有的子节点。
2.遍历 data 中的每个元素(我们称之为 item)。
3.如果 item 有 children 属性,那么就把 children 中的所有元素添加到 result 中,然后对 children 调用 extractChildren 方法,把 children 中的子节点也添加到 result 中。
4.最后,返回 result,这个数组包含了 data 中所有的子节点。
举个例子,假设我们有以下的数据:
[
{
"id": 1,
"children": [
{
"id": 2,
"children": [
{
"id": 3
}
]
}
]
},
{
"id": 4,
"children": [
{
"id": 5
}
]
}
]
如果我们对这个数据调用 extractChildren 方法,那么返回的结果将会是:
[
{
"id": 2,
"children": [
{
"id": 3
}
]
},
{
"id": 3
},
{
"id": 5
}
]
这个数组包含了原始数据中所有的子节点。