Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_If Statement - Fatal编程技术网

Javascript 在一组数组中查找最小和最大时间

Javascript 在一组数组中查找最小和最大时间,javascript,arrays,if-statement,Javascript,Arrays,If Statement,我有一系列的时间 var arr= ["17:30:48","19:30:48","18:30:48","19:30:48","17:40:48","19:10:48","17:10:48","19:30:45","17:13:48","19:13:48","17:30:48","19:28:48"]; 我想从中得到最短和最长的时间。试过了,但它会变得很长。有什么简单的方法吗。看看这把小提琴: var arr= ["17:30:48","19:30:48","17:27:48","19:30

我有一系列的时间

 var arr= ["17:30:48","19:30:48","18:30:48","19:30:48","17:40:48","19:10:48","17:10:48","19:30:45","17:13:48","19:13:48","17:30:48","19:28:48"];
我想从中得到最短和最长的时间。试过了,但它会变得很长。有什么简单的方法吗。

看看这把小提琴:

var arr= ["17:30:48","19:30:48","17:27:48","19:30:48","17:30:48","19:30:48","17:30:48","19:30:48","17:30:48","19:30:48","17:30:48","19:30:48"];

arr.sort(function (a, b) {
  return new Date('1970/01/01 ' + a) - new Date('1970/01/01 ' + b);
});

alert("Min: " + arr[0] + "     Max: " + arr[arr.length-1]);
使用此排序函数并获取第一个元素。那会让你得到最大值

arr.sort(function (a,b) {
    if(a > b) { return -1; }
    if(a < b) { return 1; }    
    return 0;
});

Console.log(arr[0]);
arr.sort(函数(a,b){
如果(a>b){return-1;}
如果(a
希望这有帮助。

var min=function(arr){
var min = function(arr) {
    return arr.reduce(function(a, b) { return a <= b? a : b;});
};

var max = function(arr) {
    return arr.reduce(function(a, b) { return a <= b? b : a;});
};

返回arr.reduce(函数(a,b){返回一个it,取第一个和最后一个元素。看一下@ie。那里的解决方案只适用于数字数组。@Barmar,那里的解决方案很常见-只要使用正确的比较器。@ie。那里的解决方案使用的是
Math.max
,而不是比较器。为什么需要将它们转换为日期,而不是将它们作为字符串进行比较?