javascript 之数组的 sort() 函数用法 (原创)

之前看到 sort() 函数可以加入函数类型的参数,设置排序的方式,一直不太理解函数的意味。
看了一些博客之后,来谈谈我对这个函数的看法,希望能够抛砖引玉。
下面先看一下设置数字从小到大和从大到小两个函数。

//目标是针对 testArray 数组,分别进行按照数字大小的正序和倒序排列
var testArray = ["20","4","15","66","190","32"];

//先来定义正序排列的函数
function positiveSort(a,b){
    return a - b;
}

//再来定义倒序排列的函数
function negativeSort(a,b){
    return b - a;
}

//正序排列结果
var positiveResult = testArray.sort(positiveSort); //["4", "15", "20", "32", "66", "190"]
var negativeResult = testArray.sort(negativeSort); //["190", "66", "32", "20", "15", "4"]
  

这两个函数到底是按什么规律在排列呢?
针对传入 sort 函数的参数函数,如果返回值小于 0,则参数函数的第一个参数排在前面,即 a;
如果返回值大于 0,则参数函数的第二个参数排在前面,即 b;
如果返回值等于 0,则参数函数的任意一个参数排在前面,因为两者相等;

这里的返回值决定的是参数函数中参数 a 和 b 的哪一个排在前面。负数代表着第一个参数,正数代表着第二个参数,0 代表两者相等。