js给树结构最后一级满足条件的加属性
时间: 2023-08-10 08:03:11 浏览: 56
假设你有一个树形结构的数据,每个节点包含一个id和一个children数组(子节点),你需要给最后一级节点中属性满足某个条件的节点添加一个新属性。
以下是一个示例代码:
```javascript
function addPropertyToLastLevel(tree, condition, property) {
tree.forEach(node => {
if (node.children && node.children.length > 0) {
addPropertyToLastLevel(node.children, condition, property);
} else {
if (condition(node)) {
node[property] = true;
}
}
});
}
// 示例用法
const data = [
{
id: 1,
children: [
{
id: 2,
children: [
{
id: 3
},
{
id: 4
}
]
},
{
id: 5,
children: [
{
id: 6
},
{
id: 7
}
]
}
]
}
];
addPropertyToLastLevel(data, node => node.id % 2 === 0, 'even');
console.log(data);
```
在上面的示例代码中,`addPropertyToLastLevel`函数接收三个参数:树形结构数据、判断条件和要添加的属性名。函数递归遍历树形结构,当遍历到最后一级节点时,如果节点满足条件,则添加指定的属性。在示例中,我们使用了一个简单的条件,即节点的`id`是偶数,如果满足条件,则添加一个名为`even`的属性,值为`true`。最后输出的结果中,节点3和7符合条件,被添加了`even`属性。