JavaScript对象数组的排序

来源:互联网 发布:coc黑胖数据 编辑:程序博客网 时间:2024/05/10 19:09

         JavaScript给我们提供了两个排序方法,一个是sort(),另一个是reverse(),对于第二个方法reverse(),就是对数组倒序排序。用到的地方并不多,对于第一个方法, 是比较常用的一个方法,  如果sort方法没有使用比较函数,则会JavaScript会默认按照字符编码的顺序进行排序,在对数字数组进行排序的时候就会出现一些问题,如果使用了排序方法的话,这些问题都会不复存在。比较函数如下:

对简单数组排序:

   

//需要排序的数组var arr = [...........];//升序排序var compareASC = function (a, b) {    if (a> b) {        return -1;    } else if (a< b) {        return 1;    } else {        return 0;    }};//降序排序var compareDESC = function (a, b) {    if (a< b) {        return -1;    } else if (a> b) {        return 1;    } else {        return 0;    }}//arr升序arr = arr.sort(compareASC);//arr降序arr = arr.sort(compareDESC);

       其实升序和降序排序主要是看比较符号的方向 ,现在情况变了一下,如果我们想要操作一个对象数组,按其中的某一个字段属性进行排序的时候,该如何做呢?

其实方法还是一样的,我们只需要把获取到需要排序的字段的值 即可,方法如下:

对对象数组排序:

//需要排序的数组var arr = [{......},{......},{........}];//需要排序的字段名var sortName = '****'//升序排序var compareASC = function (obj1, obj2) {    var val1 = obj1[sortName];    var val2 = obj2[sortName];    if (val1 > val2) {        return -1;    } else if (val1 < val2) {        return 1;    } else {        return 0;    }};//降序排序var compareDESC = function (obj1, obj2) {    var val1 = obj1[$scope.currentName];    var val2 = obj2[$scope.currentName];    if (val1 < val2) {        return -1;    } else if (val1 > val2) {        return 1;    } else {        return 0;    }}//arr升序arr = arr.sort(compareASC);//arr降序arr = arr.sort(compareDESC);

 

1 0
原创粉丝点击