如何解决这个递归问题(Javascript)

时间:2020-10-18 03:22:42

标签: javascript recursion

您如何编写以上代码以达到我的预期效果,请帮助我提供一些提示

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
}
console.log(getItem(apis))

预期结果:

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

我现在正在这样做,但是不能达到预期的效果

:)思考

1 个答案:

答案 0 :(得分:1)

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

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

console.log(getItem(apis))

相关问题