JS 集合对象如何倒输出形成新的集合对象?

现有一tree型数据:

  ·treeData: [{
    label: '甲一级 1',
    children: [{
      label: '甲二级 1-1',
      children: [{
        label: '甲三级 1-1-1'
      }]
    }]
  }, {
    label: '乙一级 2',
    children: [{
      label: '乙二级 2-1',
      children: [{
        label: '乙三级 2-1-1'
      }]
    }, {
      label: '乙二级 2-2',
      children: [{
        label: '乙三级 2-2-1'
      }]
    }]
  }, {
    label: '丙一级 3',
    children: [{
      label: '丙二级 3-1',
      children: [{
        label: '丙三级 3-1-1',
        children: [{
          label: '丙四级 3-2-1'
        }]
      }]
    }, {
      label: '丙二级 3-2',
      children: [{
        label: '丙三级 3-2-1'
      }]
    }]
  }]`
  
getMenuName(menus) { // 使用递归 由深到浅遍历
  for (const value of menus) {
    if (value.children) {
      this.getMenuName(value.children)
    }
    console.log(value.label)
  }
}

输出的结果是:
甲三级 1-1-1
甲二级 1-1
甲一级 1
乙三级 2-1-1
乙二级 2-1
乙三级 2-2-1
乙二级 2-2
乙一级 2
丙四级 3-2-1
丙三级 3-1-1
丙二级 3-1
丙三级 3-2-1
丙二级 3-2
丙一级 3

问题: 怎么才能把这个数据treeData变成和输出结果一样呢?
例如:

[
{
   label: 甲三级 1-1-1,
   children: [
  {
    label: 甲二级 1-1,
    children: [
        {
            label: 甲一级 1
        }
    ]
  }
   ]
    }
    ]
阅读 1.5k
1 个回答

console.log 挪到if上面

getMenuName(menus) { // 使用递归 由深到浅遍历
  for (const value of menus) {
    console.log(value.label)
    if (value.children) {
      this.getMenuName(value.children)
    }
    
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题