Javascript 角域中的rxjs算子

Javascript 角域中的rxjs算子,javascript,angular,typescript,rxjs,Javascript,Angular,Typescript,Rxjs,是否有任何操作员实现以下map尝试的操作 this.http.get(this.url) .pipe(map(data => { let results: object[] = new Array(); data.forEach(function(d) { let result = d['a']; result['new_index'] = d['b']

是否有任何操作员实现以下
map
尝试的操作

this.http.get(this.url)
         .pipe(map(data => {
             let results: object[] = new Array();
             data.forEach(function(d) {
                 let result = d['a'];
                 result['new_index'] = d['b'];
                 results.push(result);
             }
             retrun results;
         }));
d['a']
是一个对象,而
d['b']
是一个字符串。
new_index
键对于每个
结果都是新的


基本上,原始数据包含相当多的字段,其中我只需要两个字段,一个是对象类型的实际数据,另一个是类似ID的字段。我不需要任何其他字段。我需要取出对象数据并将ID字段插入到该对象中。

我一点也不了解您的数据结构

如果
http.get
返回如下数据:

[{
a:{…},
b:“…”
}]
然后您可以使用:

this.http.get(this.url)
.pipe(map({a,b})=>{
a、 新的指数=b;
返回a;
}));
)

但如果您的数据真的类似于:

[
[{a:{…},b:''''''''}],
[{a:{…},b:''''''''}],
]
(如您在示例中所述),因此您可以使用:

this.http.get(this.url)
.pipe(地图(数据=>
data.map({a,b})=>{
a、 新的指数=b;
返回a;
})
));

)

您可以使用Rxjs中的
map
操作符以及数组上的
map
方法来执行此操作:

您的实现可以简化如下:

this.http.get(this.url)
  .pipe(
    map((data: any[]) => data.map(
      (datum: any) => ({ 
        ...datum.a,
        new_index: datum.b
      })
    ))
  );