JavaScript:数组的sort()排序方法

说明

sort() 方法对数组进行排序,默认从小到大排序

例子

var arr = [40, 100, 1, 5, 25, 10];
arr.sort();//按照从小到大排序
var arr2 = ["Banana", "Orange", "Apple", "Mango"];
arr2.sort();//按照字母的ascii码排序

回调函数

可以通过回调函数,指定排序顺序,如:倒序排序(从大到小)

function comp(a, b){
    console.log(a,"---",b)
    if(a>=b){
        return -1
    }else{
        return 1
    }
}

arr.sort(comp);

形参: 方法有两个参数 a 和 b,分别表示待比较的两个元素。

注意:在数组中,a 表示 后一个元素,b 表示 前一个元素,如下图:

返回值:方法返回值,有三种情况:

  • 正数,2个元素的位置不改变
  • 负数,此时交换这2个元素的位置
  • 0,表示 2个元素相等,2个元素的位置不改变

返回值表示 排序规则

排序规则-正序(从小到大)

  • o1(后一个元素)大于 o2(前一个元素),返回 正数
  • o1(后一个元素)小于 o2(前一个元素),返回 负数,会交换这2个元素的位置

排序规则-倒序(从大到小)

  • o2(前一个元素)大于 o1(后一个元素),返回 正数
  • o2(前一个元素)小于 o1(后一个元素),返回 负数,会交换这2个元素的位置

例子-int 数组

从大到小排序,即:正序

var arr = [40, 100, 1, 5, 25, 10];
arr.sort(
  function(a, b){
    console.log(a,"---",b)
    if(a>=b){
       return -1
    }else{
       return 1
    }
  }
);

原文出处:/show_1IX3lyi5Yzz0.html