请问大家这个递归怎么写才能达到预期结果?

发布于 2022-09-12 13:00:59 字数 549 浏览 40 评论 0

let apis = {
  home: {
    index: {
      url: '/index',
      auth: false
    },
    tab: {
      url: '/tab',
      auth: true
    }
  },
  test: {
    test: {
      url: '/test',
      auth: false
    }
  }
}

let getItem = function (obj){
  for(let item in obj){
    if(obj.url === '/test') return
    if(obj[item] instanceof Object)
      getItem(obj[item])
  }
  return obj
}

怎么写才能得到下面的预期结果:

{
  url: '/test',
  auth: false
}

搞了一晚上 没搞出来,还望大家帮我解决一下,谢谢大家

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫﹏色ふ单纯 2022-09-19 13:00:59
function findItem(data, url) {
    for(var key in data) {
        var value = data[key];
        if(value == url) return data;
        if(Object.prototype.toString.call(value) == '[object Object]') {
            var item = findItem(value, url);
            if(item) return item;
        }
    }
}

function findItem2(data, url) {
    for(var key in data) {
        var value = data[key];
        if(Object.prototype.toString.call(value) == '[object Object]') {
            if(value.url == url) return value;
            else {
                var item = findItem2(value, url);
                if(item) return item;
            }
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文