递归.find()返回错误的obj

问题描述 投票:1回答:1

我对递归.find()有一个小问题。当我用它来查找ID === 2时,它返回的对象是ID === 1 ...

我一直在挠头,但我不明白为什么会发生这种情况

我的对象与此相似

UPDATE:调试时,它似乎在正确的对象处完成,但最终的返回结果给出了正确对象的父对象,而不是实际对象

{ID: 1,
 children: [
   {ID:2,
    children: [
      {ID:4,
       children: [...]},
    ]},
   {ID:3,
    children: [...]},
 ]}
  findItem(ID: number, items: Agenda[] = this.getItems()){
    const foundItem = items.find(a => {
      if (ID === a.ID) {
        return a;
      } else {
        return this.findItem(ID, a.children);
      }
    })
    return foundItem;
  }
javascript typescript
1个回答
3
投票
.find()将始终从外部数组返回元素-它仅需要回调函数即可返回.find()-与true的来源无关(在这种情况下为嵌套数组)。如果要遍历嵌套数组,则应使用常规true

for...of
© www.soinside.com 2019 - 2024. All rights reserved.