JavaScript实现对象数组按不同字段排序

Posted slgkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript实现对象数组按不同字段排序相关的知识,希望对你有一定的参考价值。

       如果有一个对象数组,我们想要依据某个对象属性对数组进行排序。而传递给数组sort()方法的比較函数要接收两个參数,即要比較的值。但是。我们须要一种方式来指明依照哪个属性来排序。要解决问题,能够定义一个函数,它接收一个属性名,然后依据这个属性名来创建一个比較函数,以下就是这个函数的定义。
function createComparionFun(propertyName)
{
    return function(object1,object2)
   {
       var value1=object1[propertyName];
       var value2=object2[propertyName];
      if(value1<value2)
      {
         return -1;
      }else if(value1>value2)
      {
          return 1;
      }else {
        return 0;
      }
   }
}


上面的这个函数能够像在以下样例中这样使用。

var data=[{name:"zom",age:18},{name:"nbd",age:20}];
data.sort(creatComparionFun("name"));
alert(data[0].name);//nbd
data.sort(creatComparionFun("age"));
alert(data[0].name);//zom
这样就实现了按不同属性进行排序。





以上是关于JavaScript实现对象数组按不同字段排序的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 如何按 3 种不同的属性类型对对象数组进行排序? (字符串、整数、布尔值)

按对象属性对 javascript 对象数组进行排序

Java按整数字段对对象数组进行排序,如果它们相同,则按另一个整数值排序

js 正序倒序按字段排序方法

按对象字段对对象数组进行排序

如何按多个字段对对象数组进行排序?