js记一个根据字段排序对象函数

进入11月份来,因为团队fe人力紧缺,外加楼主实习生一枚写东西比较慢,因此一直在加班,没能抽出时间更新本身的博客,早上抽点时间来把昨晚写的函数记录一下。。。bash

(一)背景

最近在处理一组对象,需求里说须要根据某一字段还有升序降序条件来排列对象,在放到table中展现,因而便有了下面这个函数。函数

(二)函数方法

咱们现定义一个对象,对象以下:ui

var data = [{
   name: "deron",
   age: 21
 }, {
   name: "miaolun",
   age: 23
  }, {
   name: "pipi",
   age: 18
}, {
     name: "yujia",
    age: 22
}, {
    name: "huangze",
    age: 29
}];复制代码

来看一下咱们的函数方法,spa

function sortObj(propertyName,cond) {
          return function(object1, object2) {
            var value1 = object1[propertyName];
            var value2 = object2[propertyName];
            if(cond == 1){//降序
              if (value2 < value1) {
                return - 1;
            } else if (value2 > value1) {
                return 1;
            } else {
                return 0;
            }
            }else if(cond == 0){//升序
              if (value2 < value1) {
                return  1;
            } else if (value2 > value1) {
                return - 1;
            } else {
                return 0;
            }
        }
      }
    }复制代码

(三)调用

函数第一个参数为须要排序的对象,第二个参数为升降序,再结合js自己的sort方法来达到排序对象的目的:code

data.sort(sortObj("age",1));复制代码

打印输出结果:对象

Array(5)
    0:{name: "CCCCCCCCc", age: 25}
    1:{name: "jiang", age: 22}
    2:{name: "AAAAAAAAAAAAAA", age: 21}
    3:{name: "CCCCCCCCccc", age: 11}
    4:{name: "CCCCCCCCcaaa", age: 10}
    length:5
    __proto__:Array(0)复制代码

好了,去上班了~排序

相关文章
相关标签/搜索