Мин. / Макс. Дат в массиве - PullRequest
0 голосов
/ 10 ноября 2018

var expenseDates = ["2018-02-06","2018-11-08","2018-11-10","2017-05-02","2017-05-02","2018-11-01"];

var sorted = expenseDates.slice()
.sort(function(a, b) {
   return new Date(a) - new Date(b);
});
    
console.log(sorted.pop()+    '--max');
console.log(sorted.shift()+  '--min');

1 Ответ

0 голосов
/ 10 ноября 2018

Вам не нужно преобразовывать его в объект даты, поскольку дата имеет формат 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]);

Рабочая демонстрация jsFiddle - https://jsfiddle.net/rpdon5cm/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...