现在我正在实现一个方法,该方法可以返回一个值并中断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]);
}
}
}
}
}
在此方法中,节点是输入对象数组。
但是效果不好。