如何使用javascript在数组中找到最早的日期

时间:2013-11-19 19:01:32

标签: javascript

如何使用javascript在数组中找到最早的日期,即最小日期? 示例:我有一个数组持有

{10-Jan-2013,12-Dec-2013,1-Sep-2013,15-Sep-2013}

我的输出应该是:

{10-Jan-2013,1-Sep-2013,15-Sep-2013,12-Dec-2013}.

我该怎么做?

2 个答案:

答案 0 :(得分:8)

我建议将匿名函数传递给sort()方法:

var dates = ['10-Jan-2013','12-Dec-2013','1-Sep-2013','15-Sep-2013'],
    orderedDates = dates.sort(function(a,b){
        return Date.parse(a) > Date.parse(b);
    });

console.log(orderedDates); // ["10-Jan-2013", "1-Sep-2013", "15-Sep-2013", "12-Dec-2013"]

var dates = ['10-Jan-2013', '12-Dec-2013', '1-Sep-2013', '15-Sep-2013'],
  orderedDates = dates.sort(function(a, b) {
    return Date.parse(a) > Date.parse(b);
  });

console.log(orderedDates);

JS Fiddle demo

请注意使用引用日期字符串的数组['10-Jan-2013','12-Dec-2013','1-Sep-2013','15-Sep-2013']

以上将为您提供一系列日期,从最早到最晚列出;如果您只想要最早,请使用orderedDates[0]

根据问题的要求,仅显示最早日期的修订方法如下:

var dates = ['10-Jan-2013', '12-Dec-2013', '1-Sep-2013', '15-Sep-2013'],
    earliest = dates.reduce(function (pre, cur) {
        return Date.parse(pre) > Date.parse(cur) ? cur : pre;
    });

console.log(earliest); // 10-Jan-2013

var dates = ['10-Jan-2013', '12-Dec-2013', '1-Sep-2013', '15-Sep-2013'],
  earliest = dates.reduce(function(pre, cur) {
    return Date.parse(pre) > Date.parse(cur) ? cur : pre;
  });

console.log(earliest);

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

假设您有一组Date个对象。

function findEarliestDate(dates){
    if(dates.length == 0) return null;
    var earliestDate = dates[0];
    for(var i = 1; i < dates.length ; i++){
        var currentDate = dates[i];
        if(currentDate < earliestDate){
            earliestDate = currentDate;
        }
    }
    return earliestDate;
}