账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问这种树状结构怎么取它的list项
    90
    0
    需求就是arr里有list所在的层级不确定所在父级字段也不确定,请问怎么把list里的项取出,放到另数组。还有就是arr项里没有list的,取当前项可以办到吗。想了半天没辙,谢谢各位const arr = [ { "id": 0, "type": "input", "name": "单行文本" }, { "type": "grid", "name": "栅格布局", "columns": [ { "span": 8, "list": [ { "id": 1, "type": "input", "name": "测试编码" } ] }, { "span": 8, "list": [ { "id": 2, "type": "input", "name": "测试名称" } ] }, { "span": 8, "list": [ { "id": 3, "type": "input", "name": "单行文本" } ] } ] }, { "type": "card", "name": "卡片布局", "list": [ { "type": "input", "name": "单行文本" }, { "type": "input", "name": "单行文本", "icon": "icon-write" } ] }, { "type": "table", "name": "表格布局", "trs": [ { "tds": [ { "colspan": 1, "rowspan": 1, "list": [ { "type": "input", "name": "单行文本" } ] } ] } ] }, { "type": "tabs", "name": "Tab页签", "tabs": [ { "key": "1", "tab": "页签1", "list": [ { "type": "input", "name": "单行文本" } ] }, { "key": "2", "tab": "页签2", "list": [ { "type": "input", "name": "单行文本" } ] } ] }]想要的结果[ { "id": 0, "type": "input", "name": "单行文本" }, { "id": 1, "type": "input", "name": "测试编码" }, { "id": 2, "type": "input", "name": "测试名称" } ... ... ...]
    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 紫梦风铃 普通会员 1楼

      在Python中,如果你有一个树状结构,你可能想要提取其所有项。这可以通过递归或者使用迭代来实现。

      以下是一个使用迭代的示例:

      ```python def extract_items(node): if node is None: return [] else: return [node] + extract_items(node.left) + extract_items(node.right)

      tree = TreeNode(1) tree.left = TreeNode(2) tree.right = TreeNode(3) tree.left.left = TreeNode(4) tree.left.right = TreeNode(5) tree.right.left = TreeNode(6) tree.right.right = TreeNode(7)

      print(extract_items(tree)) # 输出:[1, 2, 4, 5, 6, 7] ```

      在这个示例中,我们首先检查node是否为空。如果是,我们就返回一个空列表。否则,我们递归地提取左子树和右子树的项,并将结果添加到当前的列表中。

      如果你想要使用递归,你可以这样做:

      ```python def extract_items(node): if node is None: return [] else: return [node] + extract_items(node.left) + extract_items(node.right) + [node.val]

      tree = TreeNode(1) tree.left = TreeNode(2) tree.right = TreeNode(3) tree.left.left = TreeNode(4) tree.left.right = TreeNode(5) tree.right.left = TreeNode(6) tree.right.right = TreeNode(7)

      print(extract_items(tree)) # 输出:[1, 2, 4, 5, 6, 7, 1] ```

      在这个示例中,我们在递归函数的最后返回一个包含当前节点值的列表,这与我们在迭代函数中的返回列表相同。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部