在 js 中检查 childId 是否与 parentId 匹配

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

在这里,我创建了一个函数来编译一个对象的 parentid 是否与其 childId 匹配,所以 id 1 是一个父 Id,它有一个 11,12 的孩子,所以如果我调用该函数 checkParentId(obj, 1, 12) ,这将返回 true,但是我在其余的控制台语句中得到的结果是 false,那么我如何在该程序中进行更改才能获得所需的结果?该程序如下。

const obj = [
    {
      id: 1,
      name: "parent 1",
      children: [
        {
          id: 11,
          name: "child 1",
          children: [
            {
              id: 12,
              name: "grand 1",
              children: []
            }
          ]
        }
      ]
    },
    {
      id: 2,
      name: "parent 2",
      children: [
        {
          id: 21,
          name: "c1",
          children: []
        }
      ]
    },
  ];
  const checkParentId = (obj, parentId, childId) => {
    obj.forEach((item) => {
      if (item.id === parentId) {
        return true;
      }
      if (item.children.length > 0) {
        return checkParentId(item.children, parentId, childId);
      }
    });
    return false;
  };
  console.log(checkParentId(obj, 1, 12)); // true
  console.log(checkParentId(obj, 1, 21)); // false
  console.log(checkParentId(obj, 2, 21)); // true
  console.log(checkParentId(obj, 1, 2)); // false
javascript recursion data-structures logic
© www.soinside.com 2019 - 2024. All rights reserved.