如何在JavaScript中访问对象的父对象和祖父对象?

时间:2019-06-02 13:41:54

标签: javascript typescript

在角度为6的环境中,我有一个对象数组,这些对象可能包含子对象组,这也是一个对象数组,因此就像一个对象链,我需要搜索在这些对象中找到特定的字符串,如果找到了,我需要往导致目标对象的链上移动,并为具有目标字符串的链设置一个特定的布尔值,称为extended为true

这是对象的一个​​例子

    {
      name: 'link 1',
      extended: false, // needs to be true
      subGroups: [
        {
          name: 'link2',
          extended: false, // needs to be true
          subGroups: [
            {
              name: 'link3', // this is the target string
              extended: false,
              subGroups: [
                {
                  name: 'link4',
                  extended: false,
                  subGroups: [
                    {
                      name: 'brands',
                      extended: false
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          name: 'test1',
          extended: false
        }
      ]
    },
    {
      name: 'tab1',
      extended: false,
      subGroups: [
        {
          name: 'tab2',
          extended: false
        },
        {
          name: 'tab3',
          extended: false
        },
        {
          name: 'tab4',
          extended: false,
          subGroups: [
            {
              name: 'mahmoud',
              extended: false,
              subGroups: [
                {
                  name: 'mahmoud 2',
                  extended: false
                }
              ]
            }
          ]
        }
      ]
    }
  ];

这是我已经实现的递归函数,但它只获取父对象


  urlFinder(groups, parentGroup) {
    groups.forEach((group, index) => {
      if (group.name === 'link3') {
        group.activeRoute = true;
        console.log(parentGroup);
        return;
      } else {
        if (group.subGroups) {
          parentGroup = group;
          this.urlFinder(group.subGroups, parentGroup);
        }
      }
    });
  }

函数url查找器在OnInit()生命周期挂钩中触发

0 个答案:

没有答案