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

返回嵌套json的js递归函数

冀越
2023-03-14

我正在尝试创建一个递归函数,该函数将生成项的嵌套结构。此文件中的每个项都有一个指向其子项的指针和一个停止值,如您可以在下面看到的:

{
    "1": {
        "id": 1,
        "next_1": 2,
        "next_2": 3,
        "stop": false
    },
    "2": {
        "id": 2,
        "next_1": 3,
        "next_2": 4,
        "stop": false
    },
    "3": {
        "id": 3,
        "stop": true
    },
    "4": {
        "id": 4,
        "stop": true
    }
}

这个递归函数应该获得一个开始索引,它将根据该索引构建树,并返回一个嵌套的字典,如下所示:

{
    1: {
        2: {
            3: {},
            4: {}
        },
        3: {}
    }
}

共有1个答案

昌栋
2023-03-14

像这样的?

js lang-js prettyprint-override">const data = {
    "1": {
        "id": 1,
        "next_1": 2,
        "next_2": 3,
        "stop": false
    },
    "2": {
        "id": 2,
        "next_1": 3,
        "next_2": 4,
        "stop": false
    },
    "3": {
        "id": 3,
        "stop": true
    },
    "4": {
        "id": 4,
        "stop": true
    }
};


function build(root, idx) {
  const item = root[idx];
  const result = {};
  if(!item.stop) {
    result[item.next_1] = build(root, item.next_1);
    result[item.next_2] = build(root, item.next_2);
  }
  
  return result;
}

alert(JSON.stringify(build(data, 1)));
 类似资料:
  • 我一直在用这个四叉树http://www.astroml.org/book_figures/chapter2/fig_quadtree_example.html 在一些数据上。但是我现在需要结果结构的嵌套表示。 其结构类似于: 这里的子元素是递归元素,它是一个列表,包括进一步的实例。最低深度没有子级(为0),是我想要访问的表示。因此,在这种情况下,我会访问数据 最终,我希望在最低级别的数据表示像:

  • 我有一个递归函数,它会重复这个函数,直到不满足if条件,然后输出一个整数。但是,此函数之外需要整数的函数正在接收一个单位。我应该如何修改代码以返回int? 这就是整个程序 }

  • 我正在编写一个递归函数,如下所示: 此函数用于接收员工并查找其管理者。如果找到管理器,则将管理器id推送到数组中($)- 所以我的问题是,如果我不在第6行返回递归调用(这是-

  • 问题内容: 我有一个计算税金的函数。 我不明白为什么它不能停止递归。 问题答案: 在您的职能部门中: 您没有从函数或设置中返回值。当您不返回任何内容时,返回值为。 也许,您想要这样:

  • 问题内容: 我编写了以下函数,以实现自己的二进制搜索 我知道我的实现已经关闭,但是我对理解递归堆栈更加好奇。 当我调用时,我的函数应返回的值 但相反,它返回None。此外,当我直接调用时 ,我得到的正确值为0。这怎么可能? 问题答案: 您将忽略递归调用的返回值。您还需要 显式地 返回它们: 递归调用与其他任何函数调用一样;他们将结果返回给调用者。如果忽略返回值,然后调用函数结束,那么您将以该调用函

  • 问题内容: 我试图理解reactjs中的一些概念,但是我无法理解函数的嵌套。我创建了以下示例来调查我的担忧。 在下面的示例中,我呈现了一些内容,这些内容的价值来自一系列嵌套函数。但是,出现错误“未捕获的TypeError:无法读取未定义的属性’renderInnerContent’”。您能帮我了解发生了什么以及如何解决此问题吗?我的主要动机是了解如何将事物抽象为不同的功能。 问题答案: 未在该函数