技术论剑,崛起江湖

如何使用JavaScript数组方法sort给数值类型元素排序

2019-12-17  本文已影响0人  游海东

1. 问题背景

如果定义了一个字符串类型数组,可以直接使用sort方法,对元素进行排序;但是如果数组的元素是数值类型的,使用sort方法进行排序,效果就达不到了。如果坚持使用sort方法对数值类型元素排序,可以添加一个比较大小的函数。

2. 实现源码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>使用sort方法给数组元素排序</title>
        <script>
            window.onload = function(){
                var a = ['hui','you','are','save','add','opp'];
                a.sort();
                console.log(a);
                
                var b = [23,90,100,1,300,768,2];
                b.sort();
                console.log(b);
            }
        </script>
    </head>
    <body>
    </body>
</html>

3. 实现效果

实现效果

4. 改进源码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>使用sort方法给数组元素排序</title>
        <script>
            window.onload = function(){
                var a = ['hui','you','are','save','add','opp'];
                a.sort();
                console.log(a);
                
                var b = [23,90,100,1,300,768,2];
                b.sort(compareData);
                console.log(b);
            }
            
            function compareData(n1,n2){
                return n1 - n2;
            }
        </script>
    </head>
    <body>
    </body>
</html>

5. 改进效果

改进效果

6. 代码说明

sort方法是按照字典顺序对元素进行排序的,因此它排序的元素类型都是字符串;如果元素类型是数值类型,它也会认为是字符串。如果还是想要使用sort方法对数组数值元素排序,可以在排序之前传入一个比较大小的函数,sort方法可以根据函数比较两个元素的大小,确定数组的顺序。

上一篇 下一篇

猜你喜欢

热点阅读