如果在对象数组中找到值,如何中断循环

时间:2019-12-13 11:46:46

标签: typescript

现在我正在实现一个方法,该方法可以返回一个值并中断for循环

输入对象数组如下:

 DATA= [
  { id: 0, 
      predicates: [
        { id:1.1, 
          predicates: [
            {id: 2.1, predicates: []},
            {id: 2.2, predicates: []}
          ]
        },
        {id:1.2, predicates: []},
        {id:1.3, 
        predicates: [
          {id: 2.4, predicates: []},
          {id: 2.5, predicates: []}
        ]}
    ]}
 ];

我的目标是,如果我给id:2.4,我想得到这个对象:

{id:1.3, 
     predicates[
      {id: 2.4},
      {id: 2.5}
     ]}

这意味着我想从ID中获取父对象。 我想停止循环。

现在我的方法如下:

public findParent(id: number, node: any): any {
    if (node !== undefined && node.id === id) {
      return node;
    } else {
      for (let index = 0; index < node.predicates.length; index++) {
        if (node.predicates[index].id === id) {
          return node.predicates[index];
        } else {
          if (node.predicates && node.predicates.length > 0) {
            this.findParent(id, node.predicates[index]);
          }
        }
      }
    }
  }

在此方法中,节点是输入对象数组。

但是效果不好。

0 个答案:

没有答案