JavaScript 数组排序

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约定俗成的规定!!!!!

你可能感兴趣的:(javascript)