Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中日期的最小/最大值_Javascript_Arrays_Date - Fatal编程技术网

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