1、首先先按分数从高到低排序,排序方法参照以下:
https://blog.csdn.net/qq_29483485/article/details/85003814
以下是按降序排列好的学生列表:
studentList:[{
name:'张三',
store:99,
ranking:1,
},{
name:'李四',
store:98,
ranking:2,
},{
name:'王五',
store:98,
ranking:3,
},{
name:'赵四',
store:96,
ranking:4,
},{
name:'张好',
store:96,
ranking:5,
},{
name:'李丽',
store:95,
ranking:6,
},{
name:'王强',
store:95,
ranking:7,
}]
2、计算排名:
(1)分数相同,排名并列,按排名12345升序排列
let prescore = 0;//预定义分数
let ranking = 0;//排名
studentList.forEach((item,index)=>{
if(item.store==prescore){
item.ranking = ranking;
}else{
ranking++;
prescore = item.store;
item.ranking = ranking;
}
})
console.log(studentList)
添加排名后的学生列表:
(2)分数相同,排名并列,按人数排名
let prescore = 0;//预定义分数
let ranking = 0;//排名
let same = 0; //是否相同
studentList.forEach((item,index)=>{
if(item.store==prescore){
item.ranking = ranking;
same++;
}else{
ranking = ranking + same;
ranking++;
prescore = item.store;
same=0;
item.ranking = ranking;
}
})
添加排名后的学生列表: