请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么只判断 children 数据中的第一个

// 递归拼接树形列表
function getTreeMenu(rootList, id, list) {
  for (let i = 0; i < rootList.length; i++) {
    let item = rootList[i]
    if (String(item.parentId.slice().pop()) == String(id)) {
      list.push(item._doc)
    }
  }
  list.forEach(item => {
    item.children = []
    getTreeMenu(rootList, item._id, item.children)
    if (item.children.length) {
      delete item.children
    } else if (item.children.length > 0 && item.children[0].menuType == 2) {
      // 快速区分按钮和菜单 用于后期做菜单按钮权限控制
      item.action = item.children
      delete item.children
    }
  })
  return list
}
  • 请问这块为什么判断 children 数组中的第一个就能判断后面的元素都是按钮?

正在回答

1回答

因为按钮都是放在一起的,第一个是按钮,后面的肯定都是按钮,后端返回的时候,就把按钮放在一起丢进children里面的

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉3946981 #1
    非常感谢!理解了,后台在组装这个数据的时候将所有的按钮都放在一个菜单的children中了
    回复 有任何疑惑可以回复我~ 2022-03-05 14:21:57
  • 理想情况下只要菜单子级有按钮,那么他的子级也应该是按钮类型,但不讲武德的情况下,子级可以是按钮+菜单共生,只是这样做没什么意义
    回复 有任何疑惑可以回复我~ 2023-07-06 09:44:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信