什么是对日期字符串数组进行排序的最佳方法是:
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));