为什么第一段代码中的filter过滤失败?

以下两段代码,第一段使用filter过滤的时候没有成功过滤,但是第二段代码可以,其中generateRoutes函数执行后,要么返回undefined,要么返回一个RouteRecordRaw的对象,第一段代码filter是有什么地方有错误么?

  const menus = computed(() =>
    user.value?.username === config.superadmin
      ? routes
      : routes.filter(route =>
          generateRoutes(
            '',
            { ...route },
            user.value?.role?.menus || [],
            user.value?.role?.buttons || []
          )
        )
  )
const menus = computed(() => {
    if (user.value?.username === config.superadmin) return routes

    const result: RouteRecordRaw[] = []
    for (const route of routes) {
      const item = generateRoutes(
        '',
        { ...route },
        user.value?.role?.menus || [],
        user.value?.role?.buttons || []
      )
      if (item) {
        result.push(item)
      }
    }
    return result
  })

generateRoutes函数显式返回一个false也不能成功过滤

阅读 566
1 个回答
新手上路,请多包涵

最好还是把功能处理放到computed外面吧,看着很头疼。
放到外面肯定不会出现这种情况的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏