一、前言
sort()方法在对数组的排序非常的方便,而且性能好,它可以对字符串和数字进行排序。今天我结合了W3C和一些博客总结了一篇关于sort()方法的使用和原理,相信这会解决阅读者对sort()方法的一些疑惑。
二、使用
0、sort()方法对数组进行排序,并返回原数组。
1、默认情况下(不传比较函数时),按照ASCII字符代码进行排序,也就是说,数字也是按照它们的字符串形式的升序排序的。
1) 排序字符串
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); //Apple,Banana,Mango,Orange
2) 排序数字
var arr = [12, 1, 2, 21, 3];
arr.sort(); //得到的结果为 1,12,2,21,3
在默认情况下只能对小于10的数字进行升序排序。
2、传入比较函数对数值进行排序
1)什么是比较函数?
该函数应返回负值、零值或正值,具体取决于参数,例如: function(a, b){return a-b}
sort() 方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序,a,b是任意两个相邻的比较值,仅当比较函数返回正值时,交换两个比较值的顺序(排序原理)。
2) 升序,注意比较函数的表达式
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b}); //[1,5,10,25,40,100]
3) 降序,注意比较函数的表达式
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a}); //[100,40,25,10,5,1]
三、总结
这下明白了吧!!!