JS中关于数组排序的问题及其优化


1.

      //定义一个变量存数组
 var arr=[55,48,95,5,100,99,66];
 console.log(arr);

请输入图片描述

我们可以看出控制台输出的是原数组中的值,并且顺序也是原数组的顺序。

2.

   var arr=[55,48,95,5,100,99,66];
   arr.sort(function (a,b) {
        if(a>b){
            return 1;
        }else if(a<b){
            return -1;
        }else {
           return 0;
        }
       }
   )
    console.log(arr);

请输入图片描述

我们在调用JS中的sort方法(也就是排序),并且重写了里面的方法。让两个数相比,a大于b时返回正值(此处不一定非要为1,只要为正值即可),a<b时返回负值(同理此处也不一定非要为-1,只要为负值即可),a=b时返回0。在控制台就可以看出重写sort方法之后的效果。从小到大排序。

3.

 1.>

    var arr=[55,48,95,5,100,99,66];
    arr.sort(function (a,b) {
     return a-b;
       }
   )
    console.log(arr);

(a-b)

请输入图片描述

 2.>

    var arr=[55,48,95,5,100,99,66];
    arr.sort(function (a,b) {
     return b-a;
       }
   )
    console.log(arr);

(b-a)

请输入图片描述

我们优化了sort方法,因为只要a只要大于b返回的就是正值(a-b),所以排序也会从小到大排,否则返回的就是负值(b-a),排序会从大到小拍,控制台输出的效果如上2图。

声明:本网站采用BY-NC-SA协议进行授权

版权:LeoROM丨FusionLeo内核丨三星S9丨三星S8丨三星S10|版权所有,违者必究|如未注明,均为原创

转载:转载请注明原文链接 - JS中关于数组排序的问题及其优化


不忘初心 方得始终