Javascript 数组中日期的最小/最大值
Javascript 数组中日期的最小/最大值,javascript,arrays,date,Javascript,Arrays,Date,var费用日期=[“2018-02-06”、“2018-11-08”、“2018-11-10”、“2017-05-02”、“2017-05-02”、“2018-11-01”]; var sorted=expenseDates.slice() .排序(功能(a、b){ 返回新日期(a)-新日期(b); }); log(sorted.pop()+'--max'); console.log(sorted.shift()+'--min')您不必将其转换为日期对象,因为日期采用YYYY-MM-DD格式,其
var费用日期=[“2018-02-06”、“2018-11-08”、“2018-11-10”、“2017-05-02”、“2017-05-02”、“2018-11-01”];
var sorted=expenseDates.slice()
.排序(功能(a、b){
返回新日期(a)-新日期(b);
});
log(sorted.pop()+'--max');
console.log(sorted.shift()+'--min')代码>您不必将其转换为日期对象,因为日期采用YYYY-MM-DD
格式,其本身按year=>month=>day
排序。因此,您只需将输入字符串作为localCompare
进行比较。第一个索引是最短日期,而最后一个索引是最长日期
var expenseDates = ["2018-02-06","2018-11-08","2018-11-10","2017-05-02","2017-05-02","2018-11-01"];
expenseDates = expenseDates.sort(function(a, b) {
return a.localeCompare(b);
});
console.log('--min => ',expenseDates[0]);
console.log('--max => ', expenseDates[expenseDates.length -1]);
使用JSFIDLE demo-您不必将其转换为日期对象,因为日期是YYYY-MM-DD
格式,其本身是按year=>month=>day
排序的。因此,您只需将输入字符串作为localCompare
进行比较。第一个索引是最短日期,而最后一个索引是最长日期
var expenseDates = ["2018-02-06","2018-11-08","2018-11-10","2017-05-02","2017-05-02","2018-11-01"];
expenseDates = expenseDates.sort(function(a, b) {
return a.localeCompare(b);
});
console.log('--min => ',expenseDates[0]);
console.log('--max => ', expenseDates[expenseDates.length -1]);
使用JSFIDLE demo-发布代码或数据的图像有点烦人,因为无法复制粘贴来测试它。Stackoverflow有足够的工具来直接呈现问题中的代码。您正在按升序对日期进行排序,因此pop()
将检索最大日期,而不是最小日期(对于shift()
)。@Pointy更新并找到了解决方案,谢谢,谢谢@JetoPosting代码或数据的图像有点烦人,因为无法复制粘贴来测试它。Stackoverflow有足够的工具来直接呈现问题中的代码。您正在按升序对日期进行排序,因此pop()
将检索最大日期,而不是最小日期(对于shift()
)。@Pointy更新并找到解决方案谢谢,谢谢@Jeto