当前位置: 首页 > 知识库问答 >
问题:

javascript - js获取树行列表某个节点的父节点?

长孙明知
2023-10-26
const arr = [  {    id: 1,    date: "2016-05-02",    name: "王小虎",    address: "上海市普陀区金沙江路 1518 弄"  },  {    id: 2,    date: "2016-05-04",    name: "王小虎",    address: "上海市普陀区金沙江路 1517 弄"  },  {    id: 3,    date: "2016-05-01",    name: "王小虎",    address: "上海市普陀区金沙江路 1519 弄",    children: [      {        id: 31,        date: "2016-05-01",        name: "王小虎",        address: "上海市普陀区金沙江路 1519 弄",        children: [          {            id: 311,            date: "2016-05-01",            name: "王小虎",            address: "上海市普陀区金沙江路 1519 弄",          }        ]      },      {        id: 32,        date: "2016-05-01",        name: "王小虎",        address: "上海市普陀区金沙江路 1519 弄"      }    ]  },  {    id: 4,    date: "2016-05-03",    name: "王小虎",    address: "上海市普陀区金沙江路 1516 弄"  }];

上面的数组 id=311的父节点是 id=31,id=2的父节点为null;
请问应该怎么解决?

共有1个答案

赖淇
2023-10-26
function findParentNode(list, cb, parent = null) {  for(const node of list) {    if(cb(node)) return parent;    const res = findParentNode(node.children || [], cb, node);    if(res) return res;  }  return null}findParentNode(arr, v => v.id === 2) // nullfindParentNode(arr, v => v.id === 311) // {id: 31 ...}
 类似资料:
  • 如果我没弄错的话,树通常是一个列表,其中的元素按特定顺序排列。孩子们不在他们自己的子列表中,他们都在同一个列表中。 所以,我试图创建一个Tree类,其中包含TreeNodes(类)使用Tree类中的List。 我如何跟踪父母/孩子/叶子?如果父母“父母1”,有两个孩子“孩子A”和“孩子B”,我如何将他们联系在一起?

  • 我是 D3 的新手。因此,我正在尝试呈现一个图形,其中两个或多个孩子可以具有相同的父级。我想知道如何使链接再次定向到同一节点?我有断开的链接.. 任何帮助都是巨大的。 这是我的代码...

  • 我正在我的程序中使用提升property_tree。我已将树设置为使用自定义路径类型。我正在寻找的是获取特定节点的父节点ID。 下面是一个例子: 结果如预期: 我需要的是一种不永久存储节点的完整id的方法。我想的是一种简单地获取它的父节点id并将其推到路径的前面等等到顶层的方法。但是我似乎在property_tree中找不到这样做的方法。这可能吗?如果没有,对于这种情况还有其他计算完整路径的方法吗

  • 本文向大家介绍javascript 获取HTML DOM父、子、临近节点,包括了javascript 获取HTML DOM父、子、临近节点的使用技巧和注意事项,需要的朋友参考一下 在Web应用程序特别是Web2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式、内容等。如何获取要更新的元素,是首先要解决的问题。令人欣慰的是,使用JavaScript获取节点的方法有很多种,这里简单做一下

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 我的mySQL数据库中有如下表: 对于谓词,它将具有如下树视图: 我想创建一个可以选择起始节点并为此获得所有父节点的表单。例如,通过选择我想要获得: 步骤2: 有什么方法可以使用以下简单文本来打印此节点: 问题答案: 您的数据可以在RDF中表