Html 根据对象的整数对对象数组进行降序排序(角度类型SCIRPT)
我需要帮助按分数对用户对象数组进行排序。 每个用户都有一个用户名、用户名等和一个分数。 我想实现一个排行榜,其中排序数组的第一个用户位于榜首,以此类推。 因此,我的用户群如下(leadboardcomponent.ts): 但是我无法在相应的html文件中显示数组的第一个用户。 如何对数组进行排序并在html中显示第一个用户Html 根据对象的整数对对象数组进行降序排序(角度类型SCIRPT),html,arrays,angular,typescript,Html,Arrays,Angular,Typescript,我需要帮助按分数对用户对象数组进行排序。 每个用户都有一个用户名、用户名等和一个分数。 我想实现一个排行榜,其中排序数组的第一个用户位于榜首,以此类推。 因此,我的用户群如下(leadboardcomponent.ts): 但是我无法在相应的html文件中显示数组的第一个用户。 如何对数组进行排序并在html中显示第一个用户 HTML that did not work: <mat-card> <mat-icon>filter_1</
HTML that did not work: <mat-card>
<mat-icon>filter_1</mat-icon>
<span>
{{ users[0]?.Score }}
</span>
</mat-card>
HTML不起作用:
过滤器1
{{用户[0]?.Score}
请尝试更改排序方法,如下所示:
this.users.sort((l:any , r:any) => {
l = l.Score;
r = r.Score;
return l < r ? -1 : 1;
})
this.users.sort((l:any,r:any)=>{
l=l.分数;
r=r.分数;
返回l
const用户=[
{得分:19},
{得分:13},
{分数:22}
]
排序((l,r)=>{
l=l.分数;
r=r.分数;
返回l console.log(用户)
只需使用排序
let users = [
{name: 'User1', score:10},
{name: 'User2', score:100},
{name: 'User3', score:98},
];
function compare( v1, v2 ) {
if ( v1.score < v2.score ){
return 1;
}
if ( v1.score > v2.score ){
return -1;
}
return 0;
}
users.sort( compare );
// [{"name":"User2","score":100},{"name":"User3","score":98},{"name":"User1","score":10}]
让用户=[
{name:'User1',分数:10},
{name:'User2',分数:100},
{name:'User3',分数:98},
];
功能比较(v1、v2){
如果(v1.scorev2.score){
返回-1;
}
返回0;
}
排序(比较);
//[{“名称”:“用户2”,“分数”:100},{“名称”:“用户3”,“分数”:98},{“名称”:“用户1”,“分数”:10}]
ngOnInit(){
这是.\u dataService.getCurrentUserInformation().subscribe(
user=>this.user=user,
err=>console.log(err));
console.log(this.user);
//获取所有用户
这是。_dataService.getUsers()
.subscribe((Users:User[])=>this.Users=Users,err=>console.log(err));
这是sortUsersDescending();
这个.getUserPosition();
}
sortusers(){
功能比较(v1、v2){
如果(v1.Scorev2.Score){
返回-1;
}
返回0;
}
this.users.sort(比较);
}
这或多或少起作用,当前用户Sarah未排序属性(查看图像pls)
你能粘贴一个这样的例子吗?users结构?看看我的Oninit方法中的无原因,我无法调试它并查看数组你没有设置
这个。users
到subscribe
的users
参数@HereticMonkey你是什么意思?它不工作,找不到l和r:(参数)l:User(TS)类型编号不可分配给用户抱歉,可能我忘记了设置l
和r
的类型,请立即尝试。现在没有错误消息,但html中仍然没有显示用户:(“0s”?尝试将数据转换为编号。为什么在“分数”类型中得到0s
this.users.sort((l:any , r:any) => {
l = l.Score;
r = r.Score;
return l < r ? -1 : 1;
})
let users = [
{name: 'User1', score:10},
{name: 'User2', score:100},
{name: 'User3', score:98},
];
function compare( v1, v2 ) {
if ( v1.score < v2.score ){
return 1;
}
if ( v1.score > v2.score ){
return -1;
}
return 0;
}
users.sort( compare );
// [{"name":"User2","score":100},{"name":"User3","score":98},{"name":"User1","score":10}]
ngOnInit() {
this._dataService.getCurrentUserInformation().subscribe(
user => this.user = user,
err => console.log(err));
console.log(this.user);
//get all users
this._dataService.getUsers()
.subscribe((Users: User[]) => this.users = Users, err => console.log(err));
this.sortUsersDescending();
this.getUserPosition();
}
sortUsersDescending() {
function compare(v1, v2) {
if (v1.Score < v2.Score) {
return 1;
}
if (v1.Score > v2.Score) {
return -1;
}
return 0;
}
this.users.sort(compare);
}