如何用JS计算分数排名

JavaScript07

如何用JS计算分数排名,第1张

把所有分数放入一个数组中,就可以用数组排序的方法来排序

<script type="text/javascript">

    function sortNumber(a,b){

        return a-b

    }

    var arr = new Array(3,5,8,31,66,2)

    document.write(arr.sort(sortNumber))

</script>

需要注意的是sortNumber这个方法,因为sort()是按照首字母或数字来排序的,如果没有sortNumber结果为2,3,31,5,66,8 ,这个显然不是我们所要的,如果想按照其他标准进行排序,就需要提供比较函数,如果a小于b,返回一个小于0的值,a排在b的前面,就是小的排前,大的排后,如果两者相等,就返回一个0,如果a大于b,返回一个大于0的值,b排在a的前面,根据这个,我们创建一个sortNumber的函数来判断。

这个问题,我在另一个问题里答复过,简直一模一样。。。。

https://zhidao.baidu.com/question/1694280288809319988

使用java的冒泡排序发就可以实现,

var score = new Array()

score = 你获得的集合,可以直接赋值给score

下面是排序:

for (var i = 0i <score.length -1i++){

for(var j = 0 j <score.length - i - 1j++){

if(score[j] <score[j + 1]){

int temp = score[j]

score[j] = score[j + 1]

score[j + 1] = temp

}

}

}

建立一个页面上面放一个文本框id是txt,一个输入确定按钮id是btn,一个获取最高分按钮id是btn1,js代码如下

var scores = []//成绩输入集合

window.onload = function(){

    //输入按钮事件

    document.getElementById("btn").click = function(){

        var score = document.getElementById("txt").value

        scores.push(score)

    }

    //获取最高分按钮事件

    document.getElementById("btn1").click = function(){

        scores.sort(function(a,b){

             if(a > b){

                 return 0

             }else{

                 return 1

             }

        }) 

        alert(scores[0])

    }

}