Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 根据对象的整数对对象数组进行降序排序(角度类型SCIRPT)_Html_Arrays_Angular_Typescript - Fatal编程技术网

Html 根据对象的整数对对象数组进行降序排序(角度类型SCIRPT)

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</

我需要帮助按分数对用户对象数组进行排序。 每个用户都有一个用户名、用户名等和一个分数。 我想实现一个排行榜,其中排序数组的第一个用户位于榜首,以此类推。 因此,我的用户群如下(leadboardcomponent.ts):

但是我无法在相应的html文件中显示数组的第一个用户。 如何对数组进行排序并在html中显示第一个用户

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.分数;
返回lconsole.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);
}