通过上升/降序在两个数组中对对象进行排序



所以我需要在此数组中的燃料中添加排序功能。

const orders = [  
  {  
    "_id":"5d14a31490fb1e0012a3d2d8-1",
    "orderId":"0JL5ORM0JT-1",
    "created":"2019-06-27T11:05:56.377Z",
    "createdDate":"2019-06-27T09:05:56.377Z",
    "offers":[  
       {  
          "price":95.27,
          "fuel":{  
             "_id":"5ce13948eaef5200113b0de8",
             "name":"Diesel B7",
             "description":"Diesel",
             "lpt":0,
             "duty":0,
             "type":"SPOT",
             "created":"2019-05-19T11:08:56.417Z"
            }
         },
         {
           "price": 95.27,
           "fuel": {
             "_id": "5ce13948eaef5200113b0de8",
             "name": "Petrol",
             "description": "Petrol",
             "lpt": 0,
             "duty": 0,
             "type": "SPOT",
             "created": "2019-05-19T11:08:56.417Z"
           }
         },
         {
           "price": 95.27,
           "fuel": {
             "_id": "5ce13948eaef5200113b0de8",
             "name": "Fossil Fuel",
             "description": "Fossil Fuel",
             "lpt": 0,
             "duty": 0,
             "type": "SPOT",
             "created": "2019-05-19T11:08:56.417Z"
           },
         }
      ]
   }
]

我想要基于" fuel.name"

重新订购的"优惠"对象
orders.sort((a: any, b: any) => a.offers[0].fuel.name.toUpperCase().localCompare(b.offers[0].fuel.name))

当我安装上面记录上面的内容时,只需以相同的顺序返回数据。我已经设置了下面的小提琴来复制我的问题。

这是小提琴

您当前正在根据offers数组中的第一个项目对orders数组进行排序。相反,您应该在orders

sort每个对象的offers数组

const orders=[{_id:"5d14a31490fb1e0012a3d2d8-1",orderId:"0JL5ORM0JT-1",created:"2019-06-27T11:05:56.377Z",createdDate:"2019-06-27T09:05:56.377Z",offers:[{price:95.27,fuel:{_id:"5ce13948eaef5200113b0de8",name:"Diesel B7",description:"Diesel",lpt:0,duty:0,type:"SPOT",created:"2019-05-19T11:08:56.417Z"}},{price:95.27,fuel:{_id:"5ce13948eaef5200113b0de8",name:"Petrol",description:"Petrol",lpt:0,duty:0,type:"SPOT",created:"2019-05-19T11:08:56.417Z"}},{price:95.27,fuel:{_id:"5ce13948eaef5200113b0de8",name:"Fossil Fuel",description:"Fossil Fuel",lpt:0,duty:0,type:"SPOT",created:"2019-05-19T11:08:56.417Z"},}]}];
orders.forEach(o => 
    o.offers.sort((a, b) => a.fuel.name.localeCompare(b.fuel.name))
);
    
console.log(orders)

最新更新