如何对具有第二个属性的对象的数组进行排序

How to sort an array with objects on the second attribute

本文关键字:对象 数组 排序 属性 第二个      更新时间:2023-09-26

我有一个这样的数组:

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

当然数组中还有更多的项。现在我试着根据每个物体的第二个属性来排序。(order属性)

我如何在javascript中做到这一点?

非常感谢!

您可以编写自己的排序比较函数:

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

compare函数应该返回一个负值、零值或正值,以便在列表中向上/向下排序。

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

试试:

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

您可以做如下操作

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

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

试一下

//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

编写自己的比较函数

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);

来源:在JavaScript中按字符串属性值排序对象数组

Try

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