首页 > 解决方案 > 如何返回对象传递对象和值

问题描述

myObj = {
  id: 1,
  children: [
    {
      id: 2,
      children: [
        {
          id: 3
        }
      ]
    },
    {
      id: 4,
      children: [
        {
          id: 5,
          children: [
            {
              id: 6,
              children: [
                {
                  id: 7,
                }
              ]
            }
          ]
        }
      ]
    },
  ]
}

对于上述对象如何创建函数。在函数中,我将传递对象和 id 值重新调整该对象。例如:

myFunction(myObj,4)
return: 
{
      id: 4,
      children: [
        {
          id: 5,
          children: [
            {
              id: 6,
              children: [
                {
                  id: 7,
                }
              ]
            }
          ]
        }
}
}
  
myFunction(myObj,6)


return 
{
              id: 6,
              children: [
                {
                  id: 7,
                }
              ]
            }

myFunction(myObj,7)

return 
{
                  id: 7,
                }

标签: javascript

解决方案


你可以试试这个

myObj = { id: 1, children: [ { id: 2, children: [ { id: 3 } ] }, { id: 4, children: [ { id: 5, children: [ { id: 6, children: [ { id: 7, } ] } ] } ] }, ] }
ob=[]
function myfunc(myObj,n){
  if(myObj.id==n) return myObj
  else if(myObj.children){
     myObj.children.forEach(o=>{
        if(o.id==n) ob.push(o)
        else myfunc(o,n)
    })
  }
  return ob[0]
}

console.log(myfunc(myObj,5))


推荐阅读