Поиск минимального и максимального времени в наборе массивов

66
4

У меня есть множество времени,

 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"];

Я хочу получить минимальное и максимальное время. попробовал, если еще, но он стал длинным. Это простой способ сделать это.

спросил(а) 2014-07-03T09:49:00+04:00 6 лет назад
1
Решение
66

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]);

ответил(а) 2014-07-03T09:54:00+04:00 6 лет назад
54

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;});
};


reduce быстрее, но, вероятно, лучше использовать хороший старый array.sort для удобочитаемости

ответил(а) 2014-07-03T10:11:00+04:00 6 лет назад
54

Посмотрите эту скрипку: http://jsfiddle.net/99Eue/12/

Используйте эту функцию сортировки и захватите первый элемент. Это даст вам максимум.

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

Console.log(arr[0]);

Надеюсь это поможет.

ответил(а) 2014-07-03T09:57:00+04:00 6 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема