利用递归方法:
1.数据格式一 ARR
var ARR = [
{
content: { id: 10, parentId: -1, name: '红色', code: 'red' },
children: [
{
content: { id: 11, parentId: 10, name: '红苹果', code: 'red.apple' },
children: []
},
{
content: { id: 12, parentId: 10, name: '红火龙果', code: 'red.pitaya' },
children: []
},
{
content: { id: 13, parentId: 10, name: '红樱桃', code: 'red.cherry' },
children: []
}
]
},
{
content: { id: 20, parentId: -1, name: '绿色', code: 'green' },
children: [
{
content: { id: 21, parentId: 20, name: '绿枣', code: 'green.jujube' },
children: []
},
{
content: { id: 22, parentId: 20, name: '绿柠檬', code: 'green.lemon' },
children: []
}
]
},
{
content: { id: 30, parentId: -1, name: '黄色', code: 'yellow' },
children: []
}
]
2.数据格式二 BRR
var BRR = [
{
id: 10,
parentId: -1,
name: '红色',
code: 'red',
children: [
{ id: 11, parentId: 10, name: '红苹果', code: 'red.apple', children: [] },
{ id: 12, parentId: 10, name: '红火龙果', code: 'red.pitaya', children: [] },
{ id: 13, parentId: 10, name: '红樱桃', code: 'red.cherry', children: [] }
]
},
{
id: 20,
parentId: -1,
name: '绿色',
code: 'green',
children: [
{ id: 21, parentId: 20, name: '绿枣', code: 'green.jujube', children: [] },
{ id: 22, parentId: 20, name: '绿柠檬', code: 'green.lemon', children: [] }
]
},
{
id: 30,
parentId: -1,
name: '黄色',
code: 'yellow',
children: []
}
]
3.目的:将ARR数据格式转换为BRR数据格式
methods: {
getMemberTable() {
getPermission().then(res => {
let ARR = res.data.content
var CRR = []
this.fn(ARR, CRR)
console.log('ARR:', ARR)
console.log('CRR:', CRR)
this.dataList = CRR
console.log('dataList:', this.dataList)
})
},
fn(data, newArr) {
// console.log('data1:', data)
// console.log('newArr1:', newArr)
data.forEach((item, index) => {
newArr[index] = item.content
newArr[index].children = item.children
if (item.children == []) return
this.fn(item.children, newArr[index].children)
})
},
}
4.注:如有多处需转换,可将fn注册到全局
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。