在这里,我创建了一个函数来编译一个对象的 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