在observable中的对象数组上使用Array.filter

Mat*_*s.h 0 angular

我想添加filter我的对象数组.我试试这个:

this.projects
      .pipe(
          map(arr => {
              console.error(arr);
              arr.filter(r => r.name == 'x')
          })
      )
      .subscribe(result => console.log('Filter results:', result))
Run Code Online (Sandbox Code Playgroud)

console.error回到我的阵列,但是当我console.log在我的subscribe我有undefined.你能帮助我吗 ?

Nit*_*jan 5

Array.filter您应该使用buit-in filter运算符,而不是使用方法rxjs

this.projects
      .pipe(
         filter(r => r.name == 'x')
      )
      .subscribe(result => console.log('Filter results:', result))
Run Code Online (Sandbox Code Playgroud)


Seb*_*rek 5

虽然我更喜欢@Bear Nithi的解决方案,但我会告诉你代码中的错误.好吧,你应该return arr.filter(r => r.name == 'x')在你的map()电话中,像这样:

this.projects
      .pipe(
          map(arr => {
              console.error(arr);
              return arr.filter(r => r.name == 'x') // here, return filtered array
          })
      )
      .subscribe(result => console.log('Filter results:', result))
Run Code Online (Sandbox Code Playgroud)