想要实现的是的数组效果是,将所有相同的fbill数据合并,最后将合并之后的fRight提取出来组成新的对象插入,组成一个新的二维数据,例如:
旧数据:
oldData: [
{fModuleID:1,fModule:'系统管理',fbillID:1,fbill:'用户管理',fRightID:1,fRight:'新增'},
{fModuleID:1,fModule:'系统管理',fbillID:1,fbill:'用户管理',fRightID:2,fRight:'查询'},
{fModuleID:1,fModule:'系统管理',fbillID:1,fbill:'用户管理',fRightID:3,fRight:'编辑'},
{fModuleID:1,fModule:'系统管理',fbillID:1,fbill:'用户管理',fRightID:4,fRight:'删除'},
{fModuleID:1,fModule:'系统管理',fbillID:2,fbill:'部门管理',fRightID:1,fRight:'新增'},
{fModuleID:1,fModule:'系统管理',fbillID:2,fbill:'部门管理',fRightID:3,fRight:'编辑'},
{fModuleID:2,fModule:'数据管理',fbillID:1,fbill:'核查教程',fRightID:1,fRight:'新增'},
{fModuleID:2,fModule:'数据管理',fbillID:2,fbill:'核查项目',fRightID:1,fRight:'新增'},
{fModuleID:2,fModule:'数据管理',fbillID:2,fbill:'核查项目',fRightID:2,fRight:'查询'},
],
变成:
newData:[
{fModuleID:1,fModule:'系统管理',fbillID:1,fbill:'用户管理',right:[
{fRightID:1,fRight:'新增'},
{fRightID:2,fRight:'查询'},
{fRightID:3,fRight:'编辑'},
{fRightID:3,fRight:'删除'}]},
{fModuleID:1,fModule:'系统管理',fbillID:1,fbill:'部门管理',right:[
{fRightID:1,fRight:'新增'},
{fRightID:3,fRight:'编辑'}]},
{fModuleID:2,fModule:'数据管理',fbillID:1,fbill:'核查教程',right:[{fRightID:1,fRight:'新增'}]},
{fModuleID:2,fModule:'数据管理',fbillID:2,fbill:'核查项目',right:[
{fRightID:1,fRight:'新增'},
{fRightID:2,fRight:'查询'}]}
],
目前我能想到的是三重循环,有没有比较优雅的方法呢?
逻辑上短了一些,也没三重。
好像这些问题都挺像的哈,和上一次回答的类似。