某班级一次考试的成绩表。请计算每个学生总成绩,并按总成绩排名。找出各单科成绩第一名,输出其成绩与学号。

 成绩数据

 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} 是班级第一名。`);
                }
            })
        }

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值