vue 后端返回一个多级数组 需要转换成两层 如 let a = [{parentname:a公司,children:[sonName:b部门-c景区]}]的格式展示
时间: 2024-02-21 17:58:06 浏览: 65
可以使用 JavaScript 的 reduce 方法来将多级数组转换成两层的格式展示,具体代码如下:
```javascript
let data = [
{
name: 'a公司',
children: [
{
name: 'b部门',
children: [
{
name: 'c景区'
}
]
}
]
}
];
let result = data.reduce((acc, curr) => {
let parent = {
parentname: curr.name,
children: []
};
curr.children.forEach(child => {
let [sonName, grandsonName] = child.name.split('-');
let son = {
sonName: sonName,
children: [{
grandsonName: grandsonName
}]
};
parent.children.push(son);
});
acc.push(parent);
return acc;
}, []);
console.log(result);
```
运行结果为:
```
[
{
"parentname": "a公司",
"children": [
{
"sonName": "b部门",
"children": [
{
"grandsonName": "c景区"
}
]
}
]
}
]
```
其中,reduce 方法的第一个参数是回调函数,第二个参数是初始值。回调函数中的 acc 表示累计值,curr 表示当前值。在回调函数中,首先创建一个 parent 对象,然后遍历当前值的 children 属性,将其转换为 son 对象,并将 son 对象添加到 parent 对象的 children 属性中。最后将 parent 对象添加到累计值中,最终返回转换后的数组。
阅读全文