Math.min
/max
文字列ではなく、数値のみを比較します。日付を表すためにそれらを使用するのではなく、Date
オブジェクトを使用してください-それらは内部のタイムスタンプ番号によって比較されます。それでも、max / minはその内部数値を返すので、それをaに戻す必要があります(配列内の日付のMin / MaxをDate
参照してください):
ただし、文字列を使用する場合、または再作成された日付を使用できない場合は、forループまたはES5.1のみのイテレータメソッドを使用して、配列を手動で実行する必要があります.reduce()
。
var min = datestrings.reduce(function(min, cur) {
return cur < min ? cur : min;
});
// is equivalent to
var min = datestrings[0];
for (var i=1; i<datestrings.length; i++)
if (datestrings[i] < min)
min = datestrings[i];
コードを効率的にする必要がない場合は、配列を並べ替えて最初と最後の値を取得することもできます。デフォルトの英数字の並べ替えは日付形式に対応するため、これは非常に簡単です。
datestrings.sort();
var min = datestrings[0],
max = datestrings[datestrings.lengh-1];