使用递归从数组中创建一个缩进列表

独自的

一般来说,我对递归和编程还很陌生,作为初学者练习,我试图从多维数组中获取数据并从中制作一个简单的缩进树。

假设我有一个数组,其中嵌套了数组,每个 0-index 字符串是一个标题,或者随着数组的进行,另一个的子标题等等。

arr = ['Navigation','Homepage',['Social','Facebook','Twitter'],'Projects','Experience',['Gaming','Steam',['Streaming','Twitch','Hitbox']]];

在这种情况下,导航是所有内容的主要标题,社交是 Facebook 和 Twitter 的标题。Projects 和 Experiences 只是其标题的子项,应该与 Social 具有相同的缩进。

这是我想出的代码:

function tree(tarr) {
    for (var i = 0; i < tarr.length; i++) {
      if (typeof tarr[i] == 'string') {
        if (i == 0) {
          console.log(tarr[i] + ":");
        } else {
          console.log(tarr[i]);
        }
      } else {
        tree(tarr[i]);
      }
    }
  }

tree(arr);

我认为递归在这里至关重要,因此我使用了它。此外,我能够在标题中添加冒号,但我找不到将每个子标题及其子标题缩进相应数量的方法。

无论如何,我正在尝试实现这种结构:

Navigation:
   Homepage
   Social:
      Facebook
      Twitter
   Projects
   Experiment
   Games:
      Steam
      Streaming:
         Twitch
         Hitbox
普里耶什·库马尔

试试这个:

arr = ['Navigation', 'Homepage', ['Social', 'Facebook', 'Twitter'], 'Projects', 'Experience', ['Gaming', 'Steam', ['Streaming', 'Twitch', 'Hitbox']]];

function print_format(a, intent) {

  a.map((val, index) => {
    if (Array.isArray(val)) {
      print_format(val, intent + 4)
    } else {
      if (index === 0) {
        console.log(" ".repeat(intent) + val + ":")
      } else {
        // Make sure to use same constant value(4), which is used to increment intent
        console.log(" ".repeat(intent + 4) + val)
      }
    }
  })
}

print_format(arr, 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建一个使用列表的递归函数,并使用它来创建列表

来自分类Dev

从字典列表中创建一个Record数组

来自分类Dev

如何创建一个使用Java数组的列表

来自分类Dev

使用索引在另一个活动中创建的访问数组列表

来自分类Dev

F#递归创建一个int列表

来自分类Dev

递归地创建一个带角度的html列表

来自分类Dev

为递归/嵌套对象数组中的所有路径创建一个键映射

来自分类Dev

如何使用非递归方法创建一个月中所有天的列表?(提供递归样本)

来自分类Dev

从列表中创建一个数组,其中数组的第一个元素是列表中的第一个元素

来自分类Dev

从列表列表中创建一个numpy的数组集

来自分类Dev

列表中的Prolog递归,最后一个元素

来自分类Dev

说如何在 bash 中创建一个不使用递归的菜单?

来自分类Dev

检查数组列表中的项是否是另一个类中创建的对象的实例

来自分类Dev

检查数组列表中的项目是否是另一个类中创建的对象的实例

来自分类Dev

使用递归 lambda 函数解压一个简单的数组

来自分类Dev

如何使用递归找到数组的最后一个元素?

来自分类Dev

使用数组中的多个数组创建一个数组

来自分类Dev

从列表列表中创建一个列表,对由枚举方法创建的每个列表使用相同的重复索引号

来自分类Dev

如何在LISP中创建一个递归函数来计算原子在嵌套列表中出现的次数

来自分类Dev

如何从列表中创建一个形式为([1。],[2。],[3。] ...)的numpy数组?

来自分类Dev

在php中回显时创建一个数组列表

来自分类Dev

在Excel中,如何从另一个数组创建压缩列表?

来自分类Dev

如何从列表中创建一个形式为([1。],[2。],[3。] ...)的numpy数组?

来自分类Dev

从列表中创建一个均匀采样值的 numpy 数组

来自分类Dev

如何根据一个条件从数组(2 列)中创建值列表?

来自分类Dev

我只需要使用另一个列表中的重复项创建一个列表

来自分类Dev

创建一个包含s的Python列表,该字符串重复n次。使用递归

来自分类Dev

使用R中两个列表中的数据创建一个特殊矩阵

来自分类Dev

如何使用另一个数组的行中的列创建一个新数组?[php]

Related 相关文章

  1. 1

    创建一个使用列表的递归函数,并使用它来创建列表

  2. 2

    从字典列表中创建一个Record数组

  3. 3

    如何创建一个使用Java数组的列表

  4. 4

    使用索引在另一个活动中创建的访问数组列表

  5. 5

    F#递归创建一个int列表

  6. 6

    递归地创建一个带角度的html列表

  7. 7

    为递归/嵌套对象数组中的所有路径创建一个键映射

  8. 8

    如何使用非递归方法创建一个月中所有天的列表?(提供递归样本)

  9. 9

    从列表中创建一个数组,其中数组的第一个元素是列表中的第一个元素

  10. 10

    从列表列表中创建一个numpy的数组集

  11. 11

    列表中的Prolog递归,最后一个元素

  12. 12

    说如何在 bash 中创建一个不使用递归的菜单?

  13. 13

    检查数组列表中的项是否是另一个类中创建的对象的实例

  14. 14

    检查数组列表中的项目是否是另一个类中创建的对象的实例

  15. 15

    使用递归 lambda 函数解压一个简单的数组

  16. 16

    如何使用递归找到数组的最后一个元素?

  17. 17

    使用数组中的多个数组创建一个数组

  18. 18

    从列表列表中创建一个列表,对由枚举方法创建的每个列表使用相同的重复索引号

  19. 19

    如何在LISP中创建一个递归函数来计算原子在嵌套列表中出现的次数

  20. 20

    如何从列表中创建一个形式为([1。],[2。],[3。] ...)的numpy数组?

  21. 21

    在php中回显时创建一个数组列表

  22. 22

    在Excel中,如何从另一个数组创建压缩列表?

  23. 23

    如何从列表中创建一个形式为([1。],[2。],[3。] ...)的numpy数组?

  24. 24

    从列表中创建一个均匀采样值的 numpy 数组

  25. 25

    如何根据一个条件从数组(2 列)中创建值列表?

  26. 26

    我只需要使用另一个列表中的重复项创建一个列表

  27. 27

    创建一个包含s的Python列表,该字符串重复n次。使用递归

  28. 28

    使用R中两个列表中的数据创建一个特殊矩阵

  29. 29

    如何使用另一个数组的行中的列创建一个新数组?[php]

热门标签

归档