成绩数据
var scoreArr = [{
sno: 1,
chinese: 105,
math: 62,
english: 118
},
{
sno: 2,
chinese: 89,
math: 78,
english: 120
},
{
sno: 3,
chinese: 86,
math: 64,
english: 80
},
{
sno: 4,
chinese: 78,
math: 99,
english: 91
},
{
sno: 5,
chinese: 107.5,
math: 97,
english: 70
},
{
sno: 6,
chinese: 112,
math: 61,
english: 92
},
{
sno: 7,
chinese: 101,
math: 79,
english: 104
},
{
sno: 8,
chinese: 71,
math: 72,
english: 105
},
{
sno: 9,
chinese: 56,
math: 68,
english: 61
},
{
sno: 10,
chinese: 98,
math: 83,
english: 77
}]
var allResultsArr = [{
sno: 1,
chinese: 105,
math: 62,
english: 118
},
{
sno: 2,
chinese: 89,
math: 78,
english: 120
},
{
sno: 3,
chinese: 86,
math: 64,
english: 80
},
{
sno: 4,
chinese: 78,
math: 99,
english: 91
},
{
sno: 5,
chinese: 107.5,
math: 97,
english: 70
},
{
sno: 6,
chinese: 112,
math: 61,
english: 92
},
{
sno: 7,
chinese: 101,
math: 79,
english: 104
},
{
sno: 8,
chinese: 71,
math: 72,
english: 105
},
{
sno: 9,
chinese: 56,
math: 68,
english: 61
},
{
sno: 10,
chinese: 98,
math: 83,
english: 77
}];
输出每个人的总成绩
scoreArr.filter(value => { // 使用filter方法对数组进行遍历
let everyResults = value.chinese + value.math + value.english; // 将每个人的三门成绩进行相加
console.log(`学号为${value.sno}的总成绩为:${everyResults}`); // 输出每个人的总成绩
})
按总成绩排名
for (let i = 0; i < allResultsArr.length; i++) { // 按总成绩排名
for (let j = i + 1; j < allResultsArr.length; j++) {
if (allResultsArr[i].chinese + allResultsArr[i].math + allResultsArr[i].english <
allResultsArr[j].chinese + allResultsArr[j].math + allResultsArr[j].english) {
let temp = allResultsArr[i];
allResultsArr[i] = allResultsArr[j];
allResultsArr[j] = temp;
}
}
}
console.log(allResultsArr); // 按照总成绩 排序后的排名
输出每个科目的最高成绩
everySubMax('chinese');
everySubMax('math');
everySubMax('english');
function everySubMax(x) {
var max = scoreArr[0][x];
for (var k = 1; k < scoreArr.length; k++) {
if (max < scoreArr[k][x]) {
max = scoreArr[k][x];
}
}
scoreArr.filter(item => {
if (item[x] === max) {
return console.log(`学号为 ${item.sno} 的同学${x}科目成绩 ${max} 是班级第一名。`);
}
})
}