[{ "id": 1, "title": "首页", "key": "/home", "pagepermisson": 1, "grade": 1, "children": [] }, { "id": 2, "title": "用户管理", "key": "/user-manage", "pagepermisson": 1, "grade": 1, "children": [{ "id": 3, "title": "添加用户", "rightId": 2, "key": "/user-manage/add", "grade": 2 }, { "id": 4, "title": "删除用户", "rightId": 2, "key": "/user-manage/delete", "grade": 2 }, { "id": 5, "title": "修改用户", "rightId": 2, "key": "/user-manage/update", "grade": 2 }, { "id": 6, "title": "用户列表", "rightId": 2, "key": "/user-manage/list", "pagepermisson": 1, "grade": 2 } ] }, ] 对于以上数据,我想要编写一个递归函数,把以上数据的title字段名重命名为label,并往每一个对象里面新增一些属性,请问如何书写
时间: 2023-07-30 19:13:15 浏览: 118
可以编写一个递归函数来重命名title字段为label,并新增其他属性。下面是一个示例的递归函数的实现:
```javascript
function transformData(data) {
return data.map(item => {
const newItem = {
label: item.title, // 重命名title字段为label
key: item.key,
pagePermission: item.pagepermission, // 新增pagePermission属性
grade: item.grade,
};
if (item.children && item.children.length > 0) {
newItem.children = transformData(item.children); // 递归处理子菜单项
}
return newItem;
});
}
const transformedData = transformData(yourDataArray);
console.log(transformedData);
```
在递归函数中,首先对每个对象进行处理,重命名title字段为label,并新增其他所需属性。然后,判断是否存在子菜单项,若存在则递归调用该递归函数处理子菜单项。最后返回处理后的新对象数组。
请注意,这里的yourDataArray是你提供的包含数据的数组,你需要将其替换成你实际使用的数据。
运行该递归函数后,你将得到一个重命名title为label并新增其他属性的新数据数组。