如何使用第二个属性上的对象对数组进行排序

时间:2015-09-17 07:32:56

标签: javascript arrays

我有一个这样的数组:

var myarray = [Object { category="21f8b13544364137aa5e67312fc3fe19",  order=2}, Object { category="5e6198358e054f8ebf7f2a7ed53d7221",  order=8}]

当然,我的阵列中还有更多项目。现在我尝试在每个对象的第二个属性上进行排序。 (' order'属性)

如何在javascript中以最佳方式执行此操作?

非常感谢!

6 个答案:

答案 0 :(得分:3)

您可以编写自己的排序比较功能:

 myarray.sort(function(a,b) { 
     return a.order - b.order;
 });

比较函数应返回负值,零值或正值,以便在列表中向上/向下排序。

当sort方法比较两个值时,它会将值发送到compare函数,并根据返回的(负,零,正)值对值进行排序。

答案 1 :(得分:2)

试试这个

//ascending order 
myarray.sort(function(a,b){
  return a.order-b.order;
})

//descending order 
myarray.sort(function(a,b){
  return b.order-a.order;
})

JSFIDDLE

答案 2 :(得分:2)

试试这样:

array.sort(function(prev,next){
   return prev.order-next.order
 })

答案 3 :(得分:2)

您可以执行以下操作

myarray.sort(function(a,b){
 return a.order-b.order;

})

供参考 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

答案 4 :(得分:0)

编写自己的比较功能

function compare(a,b) {
  if (a.last_nom < b.last_nom)
    return -1;
  if (a.last_nom > b.last_nom)
   return 1;
  return 0;
 }

objs.sort(compare);

来源:Sort array of objects by string property value in JavaScript

答案 5 :(得分:0)

尝试

Myarray.sort(function(x,y)
{
   return x.order-y.order
})