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
,而不是比较器。为什么需要将它们转换为日期,而不是将它们作为字符串进行比较?