排序 Observable 数组时获取对象
Get object when sorting an Observable array
当我尝试对 Observable 数组进行排序时,我无法获得对象。
我想按“Localite”排序,得到的结果只是“Localite”,没有完整的对象。
我不明白为什么。
我的 Json 文件如下所示:
{
A[
Code_Postal: ...
Localite: ...
Sous_commune: ...
Commune_principale: ...
]
B[
Code_Postal: ...
Localite: ...
Sous_commune: ...
Commune_principale: ...
]
C[
...
]
...
}
我的界面是这样的:
export interface Communes{
Code_Postal : number;
Localite : string;
Sous_commune : string;
Commune_principale: string;
}
排序 json 文件的函数如下所示:
getCommunes(prov: string): Observable<Communes[]> {
return this.jsonService.getData(this.zipCodesFile)
.pipe(
map((response: any) =>
response[prov].map((localite: Communes) => localite.Localite)
.sort((a: any, b: any) => {
return a.localeCompare(b, 'en', { sensitivity: 'base' });
})
),
)
}
TS文件中函数的调用是这样的:
loadCommunes(): void{
this.communes$ = this.apiService.getCommunes('Anvers');
}
在 html 文件中,我希望能够像这样使用它:
<ul>
<li *ngFor="let commune of (communes$ | async)">{{commune.Code_Postal}} - {{commune.Localite}}</li>
</ul>
如何在 json 文件排序后检索对象?
谢谢
将您的 map
更改为:
map((response: any) =>
response[prov]
.sort((a: Communes, b: Communes) => {
return a.Localite.localeCompare(b.Localite, 'en', { sensitivity: 'base' });
})
),
您的数组 map
正在将其更改为 Localite
值的数组。
当我尝试对 Observable 数组进行排序时,我无法获得对象。
我想按“Localite”排序,得到的结果只是“Localite”,没有完整的对象。
我不明白为什么。
我的 Json 文件如下所示:
{
A[
Code_Postal: ...
Localite: ...
Sous_commune: ...
Commune_principale: ...
]
B[
Code_Postal: ...
Localite: ...
Sous_commune: ...
Commune_principale: ...
]
C[
...
]
...
}
我的界面是这样的:
export interface Communes{
Code_Postal : number;
Localite : string;
Sous_commune : string;
Commune_principale: string;
}
排序 json 文件的函数如下所示:
getCommunes(prov: string): Observable<Communes[]> {
return this.jsonService.getData(this.zipCodesFile)
.pipe(
map((response: any) =>
response[prov].map((localite: Communes) => localite.Localite)
.sort((a: any, b: any) => {
return a.localeCompare(b, 'en', { sensitivity: 'base' });
})
),
)
}
TS文件中函数的调用是这样的:
loadCommunes(): void{
this.communes$ = this.apiService.getCommunes('Anvers');
}
在 html 文件中,我希望能够像这样使用它:
<ul>
<li *ngFor="let commune of (communes$ | async)">{{commune.Code_Postal}} - {{commune.Localite}}</li>
</ul>
如何在 json 文件排序后检索对象?
谢谢
将您的 map
更改为:
map((response: any) =>
response[prov]
.sort((a: Communes, b: Communes) => {
return a.Localite.localeCompare(b.Localite, 'en', { sensitivity: 'base' });
})
),
您的数组 map
正在将其更改为 Localite
值的数组。