Как использовать localeCompare для сортировки имени по отметкам? - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть arraylist, в котором есть имена учеников и баллы отдельных лиц по математике. Для этого я просто хочу использовать localeCompare и расположить их в соответствии с их оценками в порядке возрастания и убывания ... и именем в порядке возрастания при нажатии n в соответствующем порядке.значок.в Students.ts

export class Student{
name:string;
maths:number;
}

в .ts

allStudents : Student[]=[
{name:'James',maths:38},
{name:'Kary',maths:83},
{name:'Bob',maths:93},
{name:'Pam',maths:33},
{name:'Steve',maths:75},
{name:'Williams',maths:61},
{name:'Julis',maths:68},
{name:'Matt',maths:52}
];

showStudents:Student[]=[];
compratehigh(a,b):number{ 
var n=a.localeCompare(b);
return n;

 }
  compratelow(x:Student,y:Student):number{
var x1=x.maths;
var y1=y.maths;
return x.localeCompare(y);
 }

в html

<div class="container">
<h4>Students of V-B</h4>
<div class="row">
<div class="col-4  bg-dark text-light">Name</div> 
<div class="col-1 fa fa-sort bg-primary" (click)="compratehigh()"></div>
<div class="col-4  bg-dark text-light fa fa-sort">Maths</div>
<div class="col-1 fa fa-sort bg-primary" (click)="compratelow()"></div>
<div class="row" *ngFor="let st of showStudents">
<div class="col-3 border">{{st.name}}</div>
<div class="col-3 border">{{st.maths}}</div>
</div>

это то, что я мог бы сделать, но есть ошибка в файле .tsпожалуйста, помогите мне с этим .. !!

1 Ответ

0 голосов
/ 27 февраля 2019

в .ts

 showStudents:Student[]=[];
 sort(sortby:number){
 this.showStudents=[...this.allStudents];
 if(sortby==0)
 this.showStudents.sort(this.compratehigh);
if(sortby==1)
 this.showStudents.sort(this.compratelow);
}
compratehigh(x:Student,y:Student):number{ 
var x1=x.name;
var y1=y.name;
return x1.localeCompare(y1);
}
compratelow(x:Student,y:Student):number{
var x1=x.maths;
var y1=y.maths;
return x1-y1;
}

в html

<div class="container">
<h4>Students of V-B</h4>
<div class="row">
<div class="col-4  bg-dark text-light">Name</div> 
<div class="col-1 fa fa-sort bg-primary" (click)="sort(0)"></div>
<div class="col-4  bg-dark text-light ">Maths</div>
<div class="col-1 fa fa-sort bg-primary" (click)="sort(1,2)"></div></div>
<div class="row" *ngFor="let st of showStudents">
<div class="col-5 border">{{st.name}}</div>
<div class="col-5 border">{{st.maths}}</div>

</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...