JavaScript中数据排序
1、数组排序(单纯数字)
var items = [20,23,18,7,32,19,54,56,41];
var sortItems = function(){
return this.items.sort(sortNumber);
}
function sortNumber(a, b) {
return a-b;
}
2、数组排序(对象数组)
var students = [
{name: 'Jspang', age: 33},
{name: 'Panda', age: 28},
{name: 'Panpan', age: 23},
{name: 'King', age: 14}
];
var sortStudents = function () {
return sortByKey(this.students, 'age');
}
//数组对象方法排序:
function sortByKey(array, key){
return array.sort(function(a, b){
var x = a[key];
var y = b[key];
return ((x < y) ? -1 : ( (x > y) ? 1 : 0));
});
}
注:
关于sort(sortby)中的sort排序机制,也就是关于sortby函数作为sort()参数来指导sort()的排序方式,详情见 JavaScript sort() 方法 这是w3c的介绍,理解这个的重点就是这几句话:
换句话说就是:
1.返回值小于0,a,b在数组中顺序不变
2.返回值小于0,a,b在数组中顺序不变,(变不变有什么区别呢 - -!)
*请注意上面几行是排序的规定,就像1+1=2一样,是 javascript约定俗成的规定!!!!!