js 数据遍历问题
const arr = [{
id: 1,
name: "张三",
children: [
{
id: 1.1,
name: "张四",
children: [{ id: 1.11, name: "张五" }]
}
]
}
];
已知张五id,怎么拿到张四id
已知张四id,怎么拿到张三id
回答
直接点,给代码。
function findParentId(id) { let arrMap = new Map();
function patchArr(arr, pid = null) {
arr.forEach(element => {
arrMap.set(element.id,{ ...element, pid })
element.children && (patchArr(element.children, element.id))
});
}
patchArr(arr)
return arrMap.get(id).pid;
}
console.log(findParentId(1.11)); // 1.1
function findChild(condition, children, parent = null) { for (let child of children) {
if (condition(child)) {
return parent;
} else {
if (child.children) {
return findChild(condition, child.children, child);
} else {
return null;
}
}
}
}
使用方式:
以上是 js 数据遍历问题 的全部内容, 来源链接: utcz.com/a/63668.html