gpt4 book ai didi

javascript - 我应该如何以 JSON 格式保存对父节点的当前引用?

转载 作者:行者123 更新时间:2023-11-28 00:58:28 24 4
gpt4 key购买 nike

我有一个像这样的树 json 格式:

$scope.myjson = [
{id: "1", name: "a"},
{id: "2", name: "b"},
{id: "3", name: "c", children: [
{id: "4", name: "d"},
{id: "5", name: "e", children: [
{id: "6", name: "f"}]
}]}
];

问题是这样的:如果我当前位于 myjson[2].children[1].children[0] 我想跳转到他的父级,而不需要查看或搜索所有数据来找到它。我应该如何保存对“myjson[2].children[1]”的引用,以便我可以立即返回到该父级。

我很难理解如何保存我在树中选择的当前节点,以及如何简单快捷地返回到他的父节点以及他的父节点等等,直到回到根。

我的树将是扁平的,这意味着您看不到所有层次结构,只能看到您单击的上一个节点内的节点。我将有一个“后退”按钮以某种方式返回到父节点。稍后我想保存面包屑,它们是我现在看到的节点的路径。

最佳答案

如果没有显式引用父节点,唯一的方法是遍历树并搜索父节点。听起来效率很低,但对于小树来说应该足够快了。

$scope = {}
$scope.tree = [
{id: "1", name: "a"},
{id: "2", name: "b"},
{id: "3", name: "c", children: [
{id: "4", name: "d"},
{id: "5", name: "e", children: [
{id: "6", name: "f"}]
}]}
];



function parent(tree, id, prev) {
for (var i = 0; i < tree.length; i++) {
var node = tree[i];
if (node.id == id)
return prev;
if (node.children) {
var p = parent(node.children, id, node);
if (p)
return p;
}
}
}


p = parent($scope.tree, 6)
document.write(JSON.stringify(p))

关于javascript - 我应该如何以 JSON 格式保存对父节点的当前引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com