sort()
方法是最强大的数组方法之一。
比较函数
比较函数的目的是定义另一种排序顺序。
比较函数应该返回一个负,零或正值,这取决于参数:
function(a, b){return a-b}
当sort()
函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。
排序对象数组
JavaScript 数组经常会包含对象
比较数值属性
:
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});
比较字符串属性
会稍复杂:
cars.sort(function(a, b){
var x = a.type.toLowerCase();
var y = b.type.toLowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});