JavaScript学习:JavaScript数组排序

一、sort()方法最强大的数组方法之一
sort()方法以字母顺序对数组进行排序。
例:
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.sort(); // 对 fruits 中的元素进行排序,按字母顺序排序:Apple,Banana,Mango,Orange
二、reverse()方法反转数组,可以使用它以降序对数组进行排序
例:
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.sort(); // 对 fruits 中的元素进行排序
fruits.reverse(); // 反转元素顺序 Orange,Mango,Banana,Apple
三、数字排序 sort()方法适合字符串排序(根据字母顺序排序),对于数字排序,会根据数字的第一个数来排序,例如:25会大于100,一个会产生不正确的结果,需要通过一个比值函数来修正问题。
例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});//a-b 1,5,10,25,40,100
降序例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a}); //b-a 100,40,25,10,5,1
四、比值函数另一种排序顺序,排序数字。比较函数应该返回一个负,零或正值,这取决于参数
function(a, b){return a-b}
当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。
例:
当比较 40 和 100 时,sort() 方法会调用比较函数 function(40,100)。
该函数计算 40-100,然后返回 -60(负值)。
排序函数将把 40 排序为比 100 更低的值。
五、随机顺序排序数组
例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return 0.5 - Math.random()});//得到的排序会随机变化,多点几次测试。
Math.random():产生一个[0,1)之间的随机数。
Math.random()*0.5产生一个[0,0.5)之间的随机数。
0.5+Math.random()*0.5产生一个[0.5,1)之间的随机数。
六、查找最高数组值(最低数组值)
例:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});
// 现在 points[0] 包含最低值
// 而 points[points.length-1] 包含最高值
*降序排序查找最高最低,则用b-a
如果仅需要找最高最低值,不需要排序,则可以使用Math.max()、Math.min() :Math.max.apply([1, 2, 3]) 等于 Math.max(1, 2, 3) 同样:Math.min.apply([1, 2, 3]) 等于 Math.min(1, 2, 3)。
七、排序对象数组
例:
var cars = [
{type:“Volvo”, year:2016},
{type:“Saab”, year:2001},
{type:“BMW”, year:2010}];
即使对象拥有不同数据类型的属性,sort() 方法仍可用于对数组进行排序。
cars.sort(function(a, b){return a.year - b.year});
W3School JavaScript

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章