记录一下最近在项目中使用的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从小到大排序