在Angular 2 / TypeScript中上下移动多维数组

时间:2017-06-06 00:08:25

标签: javascript json typescript multidimensional-array angular2-components

[
  {id: 1,
  name: "test 1",
  children: [
               {id: 2,
               name: "test 1-sub",
               children: []}
            ]
}]

假设一个像上面这样的json数组,其中每个元素可能有或没有子元素,并且它可以达到9级深。

如果我想知道我在树上的哪个位置,并且能够在树上上下移动。我知道在下来的路上我可以简单地转到所选子元素的索引来查看它们。我怎么回到树上?

基本上我认为我在页面上会有两个元素。包含数据的主数组,一个元素表示我正在使用的当前数组。

codes: any = [];
currentCode: any = {};

为了使这更容易阅读和导航,我只会一次显示树的一个级别,所以主代码,下面是它的子元素。

我是否需要存储我拍摄的路径地图以获取我的位置,并且每次都从顶部走下来到达我想要的位置?

我希望这不会太混乱。

1 个答案:

答案 0 :(得分:1)

假设:

  • ID是唯一的
  • 你只需要找到父母,而不是真的需要整条路径

有两种选择。如果您可以更改json或保留其副本,则可以为每个节点添加_parent字段。如果您不想这样做,您可以维护一个映射,其中键是id,值是父引用。

无论哪种方式,您都可以通过递归遍历树来填充额外数据。