通过treeSelect的value过去最后一级的所有value返回一个新数组
时间: 2023-06-19 20:05:32 浏览: 60
假设treeSelect的数据结构如下:
```javascript
const treeData = [
{
value: 'parent1',
label: 'Parent 1',
children: [
{
value: 'child1',
label: 'Child 1',
children: [
{
value: 'grandchild1',
label: 'Grandchild 1'
},
{
value: 'grandchild2',
label: 'Grandchild 2'
}
]
},
{
value: 'child2',
label: 'Child 2',
children: [
{
value: 'grandchild3',
label: 'Grandchild 3'
},
{
value: 'grandchild4',
label: 'Grandchild 4'
}
]
}
]
},
{
value: 'parent2',
label: 'Parent 2',
children: [
{
value: 'child3',
label: 'Child 3',
children: [
{
value: 'grandchild5',
label: 'Grandchild 5'
},
{
value: 'grandchild6',
label: 'Grandchild 6'
}
]
},
{
value: 'child4',
label: 'Child 4',
children: [
{
value: 'grandchild7',
label: 'Grandchild 7'
},
{
value: 'grandchild8',
label: 'Grandchild 8'
}
]
}
]
}
];
```
我们可以使用递归来实现获取最后一级的所有value,并返回一个新数组:
```javascript
function getLeafValues(treeData, values = []) {
for (const item of treeData) {
if (item.children) {
getLeafValues(item.children, values);
} else {
values.push(item.value);
}
}
return values;
}
const result = getLeafValues(treeData, ['parent1', 'child1']);
console.log(result); // ['grandchild1', 'grandchild2']
```
在这个例子中,我们将treeData和一个初始值为['parent1', 'child1']的values数组传递给getLeafValues函数。函数将遍历整个树形结构,当遇到叶子节点时,将其value值推入values数组中。最终,函数将返回一个新数组,其中包含最后一级的所有value值。
阅读全文