原生js => Ajax

javascript://8种方法根据分数判断等级

2019-03-22  本文已影响41人  專屬戀人

编写一个函数,根据输入的分数,返回对应的等级

(注:只需要关注核心逻辑,不需要考虑输入分数是否是数字,默认是数字)

1.若分数大于100分或分数小于0分,返回<无效分数>
2.若分数大于或等于0分,小于60分,返回<不及格>
3.若分数大于等于60分,小于70分,返回<及格>
4.若分数大于等于70分,小于80分,返回<一般>
5.若分数大于等于80分,小于90分,返回<良好>
6.若分数大于等于90分,小于100分,返回<优秀>
7.若分数等于100分,返回<真棒>


方法一

function ScoreLevel(socre){
    if(score < 0 || score > 100){
    return '无效分数';
    }else if(score >= 0 && score < 60){
    return '不及格';
    }else if(score >= 60 && score < 70){
    return '及格';
    }else if(score >= 70 && score < 80){
    return '一般';
    }else if(score >= 80 && score < 90){
    return '良好';
    }else if(score >= 90 && score < 100){
    return '优秀';
    }else if(score == 100){
    return '真棒';
    }
}

分析:小学生编程入门指南。


方法二

function ScoreLevel(score){
    if(score < 0 || score > 100){
        return '无效分数';
    }else{
        if(score >= 0 && score < 60){
            return '不及格';
        }else{
            if(score >= 60 && score < 70){
                return '及格';
            }else{
                if(score >= 70 && score < 80){
                    return '一般';
                }else{
                    if(score >= 80 && score < 90){
                        return '良好';
                    }else{
                        if(score >= 90 && score < 100){
                            return '优秀';
                        }else{
                            if(score == 100){
                                return '真棒';
                            }
                        }
                    }
                }
            }
        }
    }
}

分析:自闭型剥洋葱障碍症。

方法三

function ScoreLevel(score){
    if(score < 0 || score > 100){
        return '无效分数';
    }
    if(score >= 0 && score < 60){
        return '不及格';
    }
    if(score >= 60 && score < 70){
        return '及格';
    }
    if(score >= 70 && score < 80){
        return '一般';
    }
    if(score >= 80 && score < 90){
        return '良好';
    }
    if(score >= 90 && score < 100){
        return '优秀';
    }
    if(score == 100){
        return '真棒';
    }
}

分析:论return提前中断的妙处,逻辑更清晰。

方法四

function ScoreLevel(score){
    if(score < 0 || score > 100){
        return '无效分数';
    }
    if(score >= 0 && score < 60){
        return '不及格';
    }
    if(score >= 60 && score < 70){
        return '及格';
    }
    if(score >= 70 && score < 80){
        return '一般';
    }
    if(score >= 80 && score < 90){
        return '良好';
    }
    if(score >= 90 && score < 100){
        return '优秀';
    }
    return '真棒';
}

分析:方法三节省几个字符之返回默认值变体版。

方法五

function ScoreLevel(score){
    if(score < 0 || score > 100){
        return '无效分数';
    }
    if(score < 60){
        return '不及格';
    }
    if(score < 70){
        return '及格';
    }
    if(score < 80){
        return '一般';
    }
    if(score < 90){
        return '良好';
    }
    if(score < 100){
        return '优秀';
    }
    return '真棒';
}

分析:继续节省字符,利用代码的,顺序执行特性+数字大小特征+return中断。

方法六

function ScoreLevel(score){
    if(score < 0 || score > 100){
        return '无效分数';
    }
    switch(Math.floor(score / 10)){
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            return '不及格';break;
        case 6:
            return '及格';break;
        case 7:
            return '一般';break;
        case 8:
            return '良好';break;
        case 9:
            return '优秀';break;
        default:
            return '真棒';break;
    }
}

分析:switch版,利用十位数特性+break中断。

方法七

function ScoreLevel(score){
    score = Math.floor(score / 10);
    if(score < 6){
        return '不及格';
    }
    if(score == 6){
        return '及格';
    }
    if(score == 7){
        return '一般';
    }
    if(score == 8){
        return '良好';
    }
    if(score == 9){
        return '优秀';
    }
    if(score == 10){
        return '真棒';
    }
    return '无效分数';
}

分析:方法五+方法六的杂交版,大于,小于变等于版。

方法八

function ScoreLevel(score){
    return (score < 0 || score > 100) ? '无效分数' : {6:'及格',7:'一般',8:'良好',9:'优秀',10:'真棒'}[~~(score / 10)] || '不及格';
}

分析: 不折腾了,一行代码终极版,利用json对象取值特性+(? :)三元运算符

结语

感谢您的观看,如有不足之处,欢迎批评指正。

获取资料👈👈👈

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:👉👉👉147076513👈👈👈,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

上一篇 下一篇

猜你喜欢

热点阅读