我有一个javascript对象数组,它不会按日期排序

我有一个javascript对象数组,它不会按日期排序,javascript,Javascript,我对编程有点陌生,我很难理解为什么我的排序函数不会按日期排序 var customer_orders = [ { order_number: 1, customer: 'Jess Learmonth', total_cost: 200, processed_date: '23/01/2

我对编程有点陌生,我很难理解为什么我的排序函数不会按日期排序

var customer_orders = [
                { 
                    order_number:  1, 
                    customer: 'Jess Learmonth',    
                    total_cost: 200,    
                    processed_date: '23/01/2016' 
                },

                { 
                    order_number: 14, 
                    customer: 'Adam Bowden',       
                    total_cost: 100,    
                    processed_date: '22/01/2015' 
                }
            ];


customer_orders.sort(function(a, b) {
    var dateA = new Date(a.processed_date), dateB = new Date(b.processed_date);
    return dateA - dateB;
});

它没有排序,因为您的日期格式没有重新确认。您可以尝试以下操作:

var客户订单=[{订单号:1,客户:'Jess Learmonth',总成本:200,处理日期:'23/01/2016'},{订单号:14,客户:'Adam Bowden',总成本:100,处理日期:'22/01/2015'}];
客户订单.sort((a,b)=>a.processed_date.split('/').reverse().join('').localeCompare(b.processed_date.split('/').reverse().join('');

控制台日志(客户订单)由于您的日期格式不是按日期识别的格式,您可以这样进行转换

var customer_orders = [{
    order_number: 1,
    customer: 'Jess Learmonth',
    total_cost: 200,
    processed_date: '23/01/2016'
  },

  {
    order_number: 14,
    customer: 'Adam Bowden',
    total_cost: 100,
    processed_date: '22/01/2015'
  }
];


function reformatDate(dateString) {
    var dateParts = dateString.split("/");
    return new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
}

customer_orders.sort(function(a, b) {
  return new Date(reformatDate(a.processed_date)) - new Date(reformatDate(b.processed_date));
});

console.log(customer_orders);

您应该使用
momentjs
解析日期,并比较它们进行排序-

var客户订单=[{
订单号:1,
顾客:“Jess LearnMonth”,
总成本:200,
处理日期:2016年1月23日
},
{
订单号:14,
顾客:“亚当·鲍登”,
总成本:100,
处理日期:2015年1月22日
}
];
设ans=customer\u orders.sort(函数a,b){
var dateA=时刻(a.处理日期,“DD/MM/YYYY”),
日期b=时刻(b.处理日期,“DD/MM/YYYY”);
返回日期a-日期b;
});
控制台日志(ans)

'22/01/2015'
不是
日期
构造函数识别的日期格式<代码>2015-01-22(ISO标准)。可能与