什么是对日期字符串数组进行排序的最佳方法是:

var array = ["Tue 7/28", "Sat 8/1", "Sun 8/2", "Mon 7/27", "Thu 7/30", "Fri 7/31", "Wed 7/29"];


到这个:

var array = ["Mon 7/27", "Tue 7/28", "Wed 7/29", "Thu 7/30", "Fri 7/31", "Sat 8/1", "Sun 8/2"];

最佳答案

您需要以某种方式使日期具有可比性,因此可以使用函数将日期转换为可比性。您可以跳过工作日并获取月份和日期,并将其转换为数字:

function decodeDate(s) {
  parts = s.substr(4).split('/');
  return parseInt(parts[0], 10) * 40 + parseInt(parts[1], 10);
}


使用它可以对数组进行排序:

array.sort(function(a, b){ return decodeDate(a) - decodeDate(b); });


演示:



function decodeDate(s) {
  parts = s.substr(4).split('/');
  return parseInt(parts[0], 10) * 40 + parseInt(parts[1], 10);
}

var array = ["Tue 7/28", "Sat 8/1", "Sun 8/2", "Mon 7/27", "Thu 7/30", "Fri 7/31", "Wed 7/29"];

array.sort(function(a, b){ return decodeDate(a) - decodeDate(b); });

document.write(JSON.stringify(array));

09-10 10:40