Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从可观察阵列角度选择元素_Javascript_Angularjs_Arrays_Reactivex - Fatal编程技术网

Javascript 从可观察阵列角度选择元素

Javascript 从可观察阵列角度选择元素,javascript,angularjs,arrays,reactivex,Javascript,Angularjs,Arrays,Reactivex,我正在查询一个API并试图从它返回的数组中获取一个特定元素 我查询API并得到一个JSON响应。我通过.map调用将响应发送到一个函数,该函数将响应中的每个对象映射到一个T getOne(num: number): Observable<T> { let t$ = this.http .get(`${this.API_URL}?${this.getParams()}`) .map(mapToTypeT) .filter(x =&

我正在查询一个API并试图从它返回的数组中获取一个特定元素

我查询API并得到一个JSON响应。我通过.map调用将响应发送到一个函数,该函数将响应中的每个对象映射到一个T

getOne(num: number): Observable<T> {
      let t$ = this.http
      .get(`${this.API_URL}?${this.getParams()}`)
        .map(mapToTypeT)
        .filter(x => Number.parseInt(x.rn) === num)

      return t$;
}
是否有一种方法可以进入T[]数组检查每个元素的属性,然后返回与给定谓词匹配的元素?目前,我正在使用一个T的可观察数组,但我只想返回一个T的可观察数组

其他两项功能仅供参考:

function mapToTypeT(response:Response): T[]{
  return response.json().map(t => toT(t))
  }


  function toT(r:any): T{
  let t = <T>({
    staId:    r.staId,
    stpId:    r.stpId,
    staNm:    r.staNm,
    stpDe:    r.stpDe,
    rn:       r.rn,
  });
  return t;
}
函数映射类型(response:response):T[]{
返回response.json().map(t=>toT(t))
}
函数toT(r:any):T{
设t=({
斯泰德:r.斯泰德,
stpId:r.stpId,
斯坦姆:r·斯坦姆,
stpDe:r.stpDe,
注册护士:注册护士,
});
返回t;
}

我发现这里有点不对劲

  • 返回类型应为:

可观察的
我发现这里有点不对劲

  • 返回类型应为:
可观察的
function mapToTypeT(response:Response): T[]{
  return response.json().map(t => toT(t))
  }


  function toT(r:any): T{
  let t = <T>({
    staId:    r.staId,
    stpId:    r.stpId,
    staNm:    r.staNm,
    stpDe:    r.stpDe,
    rn:       r.rn,
  });
  return t;
}