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
})
))
);