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;
}
})
添加排名後的學生列表: