JavaScript --Sort() 快排方法

记录一下最近在项目中使用的js的Sort   快速排序方法:

定义和用法:sort() 方法用于对数组的元素进行排序。

使用说明:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

案例1:对 arr 数组排序

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
arr.sort();  //调用sort 方法
排序前:George,John,Thomas,James,Adrew,Martin

排序后:Adrew,George,James,John,Martin,Thomas

案例2:对 一维数组 arr 数组排序

var arr = [10,5,40,25,100,1];
arr.sort(function(a,b) {   //从小到大排序
  return  a - b
 });

arr.sort(function(a,b) {   //从大到小排序
  return  b - a
 });

console.log(arr);

案例3:对 二维数组 arr 排序
var arr = [['上海',18],['北京',19],['深圳',17],['天津',15],['江苏',16]];
arr.sort(function(a,b) {   //从小到大按数值排序
  return  a[1] - b[1]

 });

排序后:天津,15,江苏,16,深圳,17,上海,18,北京,19

arr.sort(function(a,b) {   //从大到小按数值排序
  return  b[1] - a[1]

 });

排序后:北京,19,上海,18,深圳,17,江苏,16,天津,15

案例4:对 三维维数组  city_count_gdp 排序

city_count_gdp.push([city_list[i].city_name, city_list[i].company_count, city_list[i].gdp]);  //向三维数组里存放如数值

 分别对应0-城市名、1-数量、2-gdp 
city_count_gdp.sort(function(a, b) { 

  return a[1] - b[1]  //数量从小到大排序

                               // return a[2] - b[2]  //gdp从小到大排序

  });



猜你喜欢

转载自blog.csdn.net/qq_15901351/article/details/80469626