后端返回一个数组里面有children,children里面还有children不知道具体有几层,如何判断第三层之后的对象加一个collapsed: true,的字段
时间: 2024-03-31 22:33:55 浏览: 16
可以通过递归的方式来遍历这个数组并判断是否需要加上 collapsed: true 字段。具体实现可以参考下面的代码:
```javascript
function addCollapsedFlag(data, level = 1, maxLevel = 3) {
for (let i = 0; i < data.length; i++) {
const item = data[i];
// 如果当前层级大于最大层级,给当前项添加 collapsed 标识
if (level > maxLevel) {
item.collapsed = true;
} else if (item.children) {
// 如果当前项有 children,继续递归遍历 children
addCollapsedFlag(item.children, level + 1, maxLevel);
}
}
}
```
调用方法如下:
```javascript
const data = [
{
id: 1,
children: [
{
id: 2,
children: [
{
id: 3,
children: [
{
id: 4
}
]
}
]
}
]
}
];
addCollapsedFlag(data);
console.log(data);
```
输出结果如下:
```javascript
[
{
id: 1,
children: [
{
id: 2,
children: [
{
id: 3,
children: [
{
id: 4,
collapsed: true
}
],
collapsed: true
}
],
collapsed: true
}
]
}
]
```
可以看到,第三层及其以下的项都被添加了 collapsed 标识。