簡體   English   中英

RXJS 更好的方法來 map 和過濾器數組內部的 Observable<object><div id="text_translate"><p> 這是我想要完成的一個非常簡單的版本。 目前它正在按預期工作,但我只是想知道是否有更短/更清潔的方法來實現 pipe() 內部的運算符</p><p><strong>當前行為:</strong>在包含數組“項目”的屬性的可觀察對象上調用 pipe。 在 pipe 內部,過濾、排序然后將項目發布到行為主體。</p><pre> public items$: BehaviorSubject public testObservable = () =&gt; of({ Test: '123', Properties: 'props', Items: [ { key: 1, val: 'test1' }, { key: 2, val: 'test2' }, { key: 3, val: 'test3' } ] }); testMethod() { this.testObservable().pipe( pluck('Items'), map(items =&gt; items.filter(item =&gt; item.key,= 2)). map(items =&gt; items,sort((a. b) =&gt; (a.key &gt; b?key: 1, -1))). tap(items =&gt; { this.items$;next(items) }) );</pre></div></object>

[英]RXJS better way to map and filter array inside of Observable<object>

這是我想要完成的一個非常簡單的版本。 目前它正在按預期工作,但我只是想知道是否有更短/更清潔的方法來實現 pipe() 內部的運算符

當前行為:在包含數組“項目”的屬性的可觀察對象上調用 pipe。 在 pipe 內部,過濾、排序然后將項目發布到行為主體。

  public items$: BehaviorSubject

  public testObservable = () =>
    of({
      Test: '123',
      Properties: 'props',
      Items: [
        { key: 1, val: 'test1' },
        { key: 2, val: 'test2' },
        { key: 3, val: 'test3' }
      ]
    });

  testMethod() {
    this.testObservable()
      .pipe(
        pluck('Items'),
        map(items => items.filter(item => item.key != 2)),
        map(items => items.sort((a, b) => (a.key > b.key ? 1 : -1))),
        tap(items => { this.items$.next(items) })
      );

好吧,我可以只寫

this.testObservable()
  .pipe(
    map(value => 
        value.items.filter(item => item.key != 2)
             .sort((a, b) => (a.key > b.key ? 1 : -1))
    ),
    tap(this.items$.next)
  )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM