JavaScript 递归获取对象层级值 - 示例代码
你可以通过递归的方式来实现这个需求。首先,我们需要定义一个递归函数,该函数将接收一个节点和一个空数组作为参数。在函数内部,我们将首先将该节点的值添加到数组中,然后检查是否存在父级节点。如果存在父级节点,则将父级节点传递给递归函数,继续处理。最后,我们将返回最终的数组。
以下是实现这个递归函数的示例代码:
function getHierarchyValues(node, result = []) {
// 将当前节点的值添加到结果数组中
result.push(node.value);
// 检查是否存在父级节点
if (node.parent) {
// 递归调用函数,将父级节点传递给它
getHierarchyValues(node.parent, result);
}
return result;
}
然后,我们需要创建与给定的对象结构相对应的节点对象。我们可以使用以下代码来创建节点对象:
const a = { value: 1 };
const b = {
value: 1000,
children: {
value: 600,
children: {
value: 1
}
}
};
// 创建一个父级节点
const parent = { value: 100 };
// 添加 a 作为 parent 的子节点
parent.children = a;
// 添加 parent 作为 a 的父级节点
a.parent = parent;
// 添加 b 作为 a 的子节点
a.children = b;
// 添加 a 作为 b 的父级节点
b.parent = a;
现在,我们可以调用 getHierarchyValues 函数来获取层级值的结果了:
const result = getHierarchyValues(a);
console.log(result); // 输出 [ 1000, 600, 1 ]
这样,我们就可以得到 [ 1000, 600, 1 ] 这个包含 a 的父级的值按层级排列的结果了。
原文地址: https://www.cveoy.top/t/topic/fsTe 著作权归作者所有。请勿转载和采集!