如何使用可观察的 rxJS 过滤 json

小鸡开发

我使用 angular 服务 HTTP 得到一个带有节点子节点的 json 。

 {  
      "id":"CAT0001",
      "parentId":null,
      "label":"Internal Cause",
      "level":1,
      "enabled":true,
      "children":[  
         {  
            "id":"CAT0003",
            "parentId":"CAT0001",
            "label":"Internal Deliberate Act",
            "level":2,
            "enabled":true,
            "children":[  ]
         },
         {  
            "id":"CAT0004",
            "parentId":"CAT0001",
            "label":"Human Error",
            "level":2,
            "enabled":true,
            "children":[  
               {  
                  "id":"CAT0005",
                  "parentId":"CAT0004",
                  "label":"System input error",
                  "level":3,
                  "enabled":true,
                  "children":[  

                  ]
               }

我想在我的 observable 上使用 .filter 只保留启用 === true 的节点

我想我需要创建一个递归函数或使用一个好的运算符 rxjs

目前我成功过滤了第一级

getTreeData(url:string) {
    return this.httpService.get(url).map(data => data.filter(data => data.enabled === true));
  }

有人可以帮助我吗?

莱昂·拉德利

这不是一个真正的 rxjs 问题,因为它是您想要过滤掉的结果对象的子对象。

我创建了这个 stackblitz 来帮助可视化问题https://stackblitz.com/edit/recursive-tree?file=app/tree.service.ts

通过执行递归打字稿函数解决主要问题的地方。

export interface TreeNode {
  id: string;
  parentId?: string;
  label: string;
  level: number;
  enabled: boolean;
  children: TreeNode[];
}

filterActiveNodes(nodes: TreeNode[]) {
  const filteredNodes = nodes.filter(n => n.enabled);
  // filter children
  for (const n of filteredNodes) {
    n.children = this.filterActiveNodes(n.children);
  }

  return filteredNodes;
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用RxJS创建可过滤列表

来自分类Dev

RxJs:如何根据可观察状态循环?

来自分类Dev

RXJS控件可观察的调用

来自分类Dev

RxJS-如何对异步可观察对象数组使用toArray()?

来自分类Dev

RxJs可观察:如果为空/已过滤,则执行功能

来自分类Dev

rxjs:可以通过json字段观察的过滤器

来自分类Dev

RXJS可观察数组上的简单过滤器

来自分类Dev

如何退订可观察的RxJS 5?

来自分类Dev

Angular 8:从可观察到的RxJS中过滤结果(来自Angular.io教程)

来自分类Dev

可观察的rxjs过滤器

来自分类Dev

如何最终确定可观察的rxjs switchmap?

来自分类Dev

使用RxJS如何触发另一个动作流的可观察对象

来自分类Dev

如何使用rxjs中的过滤器

来自分类Dev

RxJs:使用发射另一个可观察值来过滤可观察内容

来自分类Dev

通过添加,过滤或删除项目来更新可观察到的Rxjs数组

来自分类Dev

发出其他可观察到的消息后过滤RxJS流,直到计时器用尽

来自分类Dev

如何在RXJS中使用可观察变量来转换数组?

来自分类Dev

如何使用RxJS可观察的订阅调用中的值

来自分类Dev

如何取消可观察的合成RxJS

来自分类Dev

RxJS绑定可观察

来自分类Dev

使用RxJS Observables的JSON数据:过滤器不起作用

来自分类Dev

如何在可观察的属性上过滤可观察的对象?

来自分类Dev

如何基于模式使用RxJS可观察对象过滤数据

来自分类Dev

使用 Rxjs 过滤 Observable

来自分类Dev

如何使用 rxjs 处理序列可观察量?

来自分类Dev

稍后如何在 rxjs 可观察流中使用属性?

来自分类Dev

如何在 Angular 5 中使用 rxJS 存储来自 API 的可观察数据?

来自分类Dev

如何过滤可观察数组?

来自分类Dev

如何使用使用 rxJS 的表单控件对来自服务器的可观察加载数据执行过滤?

Related 相关文章

  1. 1

    使用RxJS创建可过滤列表

  2. 2

    RxJs:如何根据可观察状态循环?

  3. 3

    RXJS控件可观察的调用

  4. 4

    RxJS-如何对异步可观察对象数组使用toArray()?

  5. 5

    RxJs可观察:如果为空/已过滤,则执行功能

  6. 6

    rxjs:可以通过json字段观察的过滤器

  7. 7

    RXJS可观察数组上的简单过滤器

  8. 8

    如何退订可观察的RxJS 5?

  9. 9

    Angular 8:从可观察到的RxJS中过滤结果(来自Angular.io教程)

  10. 10

    可观察的rxjs过滤器

  11. 11

    如何最终确定可观察的rxjs switchmap?

  12. 12

    使用RxJS如何触发另一个动作流的可观察对象

  13. 13

    如何使用rxjs中的过滤器

  14. 14

    RxJs:使用发射另一个可观察值来过滤可观察内容

  15. 15

    通过添加,过滤或删除项目来更新可观察到的Rxjs数组

  16. 16

    发出其他可观察到的消息后过滤RxJS流,直到计时器用尽

  17. 17

    如何在RXJS中使用可观察变量来转换数组?

  18. 18

    如何使用RxJS可观察的订阅调用中的值

  19. 19

    如何取消可观察的合成RxJS

  20. 20

    RxJS绑定可观察

  21. 21

    使用RxJS Observables的JSON数据:过滤器不起作用

  22. 22

    如何在可观察的属性上过滤可观察的对象?

  23. 23

    如何基于模式使用RxJS可观察对象过滤数据

  24. 24

    使用 Rxjs 过滤 Observable

  25. 25

    如何使用 rxjs 处理序列可观察量?

  26. 26

    稍后如何在 rxjs 可观察流中使用属性?

  27. 27

    如何在 Angular 5 中使用 rxJS 存储来自 API 的可观察数据?

  28. 28

    如何过滤可观察数组?

  29. 29

    如何使用使用 rxJS 的表单控件对来自服务器的可观察加载数据执行过滤?

热门标签

归档