我有一个service.ts,其中我使用get()方法(http)从本地JSON文件获取数据。它工作得很好。
getMusic() {
return this.http.get('assets/music.json')
.map((res:Response) => res.json())在我的课堂上,我有我的“疑惑”:
ngOnInit() {this.musicService.getMusic().subscribe(
data => { this.music = data.music}
);
}我的JSON文件如下所示:
{
"music" : [
{
"no": 11,
"name": "Music 1",
}, ...... aso....一切都是完美的。现在我正在尝试过滤我的数据,所以它只显示no=11的音乐。
我有这个导入:
//import 'rxjs/add/operator/map';
//import 'rxjs/add/operator/filter';
import 'rxjs/Rx';我试过几种方法。包括过滤数字而不是字符串,使用==而不是===,将.filter放入内部或外部.map aso。当我尝试这样做时,我根本没有收到任何结果。我没有得到错误,只是没有结果:
getMusic() {
return this.http.get('assets/music.json')
.map((res:Response) => res.json())
.map(x => x.filter(y => y.name === 'Music 1'));
}发布于 2017-07-28 04:32:28
您的filter运算符函数错误。它应该在music上进行过滤。
getMusic() {
return this.http.get('assets/music.json')
.map((res:Response) => res.json())
//filter on `music` object instead of `x` directly
.map(x => x.music.filter(y => y.name === 'Music 1'));
}发布于 2017-07-28 04:43:25
filter函数应用于数组,而不是数组的实例尝试使用
this.filteredArr = this.music.filter(x=>x.name == 'music 1'); //some conditionhttps://stackoverflow.com/questions/45360433
复制相似问题