1

利用递归方法:

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注册到全局


折骨成诗
7 声望1 粉丝

碌碌谋生 谋其所爱