收藏
回答

讨论一个判断问题:奖学金的问题?

获取成绩>判断成绩>给出判断 判断成绩:①grade<75显示 X ②75<=grade<80显示二等 ③80<=grade<=100显示一等 给出结论;(我的疑问在这,如何写代码比较有效) ①如果有一个不合格,则不符合奖学金申请条件 ②如果全为一等,则符合一等奖学金 ③如果有一个是三等,其他不是不合格,则为三等 ④如果有一个是二等,其他是一等或者二等,则二等 上面表述没有问题,但是按照这种表述写代码肯定是复杂化代码了,请问怎么写代码比较高效?判断时不会出错?谢谢!

回答关注问题邀请回答
收藏

1 个回答

  • Laliho
    Laliho
    2020-09-12
    // 题目里好像没看到三等奖的判断规则
    // 看题干的四条规则,似乎可以归纳为:最终等级取决于最差的那一级
    // 所以把最差的那一级找出来返回
    const gradeList = ['不合格', '三等奖', '二等奖', '一等奖'];
    const getLevel = (grade) => {
      if (grade < 75) return 0;
      if (grade >= 75 && grade < 80) return 1;
      if (grade >= 80 && grade < 100) return 2;
      if (grade >= 100) return 3;
    };
    const judge = (gradeList) => {
      let level = 3;
      // 这里可以优化,如果有不合格的可以直接中止
      gradeList.forEach((grade) => {
        level = Math.min(level, getLevel(grade));
      });
      return gradeList[level];
    };
    
    2020-09-12
    有用 1
    回复 2
    • 败者为寇
      败者为寇
      发表于小程序端
      2020-09-12
      非常感谢2点钟还在回答问题!
      2020-09-12
      回复
    • 败者为寇
      败者为寇
      发表于小程序端
      2020-09-12
      感觉假如我那样再去判断多少个一等,需要写很多代码。
      2020-09-12
      回复
登录 后发表内容
问题标签