本文主要是介绍web蓝桥杯真题:分阵营,比高低,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码:
function orderStudentGrade(students) {// TODO: 在这里写入具体的实现逻辑// 将学生的成绩按班级分组,同一班级中按照总分从高到底排序if(students.length == 0) {return {}}// 排序函数,按照总分降序const compare = (a, b) => {const scoreA = a.math + a.language + a.english + a.physics + a.chemistryconst scoreB = b.math + b.language + b.english + b.physics + b.chemistryreturn scoreB - scoreA}let result = {}let arr1 = students.filter(item => item.class == 1).sort(compare) //留下班级为1的数组let arr2 = students.filter(item => item.class == 2).sort(compare)let arr3 = students.filter(item => item.class == 3).sort(compare)result = { 1:arr1, 2:arr2, 3:arr3}return result
}module.exports = orderStudentGrade; // 检测需要,请勿删除
考点:
1.数组排序:
arr.sort(compareFn)
基础升序函数
(a,b) => return a-b
按数组内对象内某个属性排序
function compare(a, b) {return (a.math + a.english) - (b.math + b.english)
}
2.过滤器:
常用于筛选数组
let arr = arr.filter(function(currentValue, index, arr) {return //满足条件直接return,用新数组接收
})
这篇关于web蓝桥杯真题:分阵营,比高低的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!