我有这样一个数组
let options = [
{
id:'0001',
label:'设备一类',
children:[
{
id:'1001',
type:'A',
label:'A类设备1'
},
{
id:'1002',
type:'B',
label:'B类设备1'
},
{
id:'1003',
type:'B',
label:'B类设备2'
},
{
id:'1004',
type:'C',
label:'C类设备1'
},
]
},
{
id:'0002',
label:'设备二类',
children:[
{
id:'2001',
type:'A',
label:'A类设备1'
},
{
id:'2002',
type:'B',
label:'B类设备1'
},
{
id:'2003',
type:'C',
label:'C类设备1'
},
{
id:'2004',
type:'C',
label:'C类设备2'
},
]
}
]
希望修改数据用于el-cascader,将数据修改成为
let options = [
{
value:'0001',
label:'设备一类',
children:[
{
value:'A',
label:'A类设备',
children:[
{
value:'1001',
label:'A类设备1'
}
]
},
{
value:'B',
label:'B类设备',
children:[
{
value:'1002',
label:'B类设备1'
},
{
value:'1003',
label:'B类设备2'
},
]
},
{
value:'C',
label:'C类设备',
children:[
{
value:'1004',
label:'C类设备1'
}
]
},
]
},
]
我的设想用两次map,但是产生多个equipA,equipB,equipC
let equipOp = options.map((item)=>{
return{
value:item.id,
label:item.label,
children:item.children.map(({id,type,label})=>{
let equipA = {
id: 0,
label: 'A类设备',
value: 'A',
children: []
}
let equipB = {
id: 1,
label: 'B类设备',
value: 'B',
children: []
}
let equipC = {
id: 2,
label: 'C类设备',
value: 'C',
children: []
}
const formateObj = {
value:id,
label:label,
}
switch(type){
case 'A': equipA.children.push(formateObj);
break;
case 'B': equipB.children.push(formateObj);
break;
case 'C': equipC.children.push(formateObj);
break;
}
return{
//...equipA
//...equipB
//...equipC
equipA,
equipB,
equipC
}
})
}
})