получить наименьшую дату после собственной даты из массива - PullRequest
0 голосов
/ 01 октября 2019

Я хочу получить наименьшую дату из массива Dates после моей собственной Date. пример:

var datesArray = ['2019, 10, 4', '2019, 10, 13', '2019, 10, 8', '2019, 10, 6'];
ownDate = '2019, 10, 05';

Я хочу получить наименьшую дату после 2019, 10, 05 из datesArray. В этом примере ответ: 2019, 10, 06.

Ответы [ 2 ]

2 голосов
/ 01 октября 2019

Отфильтруйте массив, чтобы получить все даты, которые больше той, которую вы хотите, затем отсортируйте ее и получите первую:

var datesArray = ["2019, 10, 4", "2019, 10, 13", "2019, 10, 8", "2019, 10, 6"];
var ownDate = "2019, 10, 05";

var result = datesArray
  .filter(e => new Date(e) - new Date(ownDate) > 0)
  .sort((a, b) => new Date(a) - new Date(b));

var date = result[0];

console.log(date);
0 голосов
/ 01 октября 2019

РЕДАКТИРОВАТЬ: Исправлен предыдущий код и объяснение

    var datesArray = ['2019, 10, 4', '2019, 10, 13', '2019, 10, 8', '2019, 10, 6'];
    ownDate = '2019, 10, 05';
    ownDate = convertToDate(ownDate);
    index = -1;
    let maxDate = new Date(8640000000000000);
    function getSmallestDate(){

        for(i = 0;i<datesArray.length;i++){
            convertedDate = convertToDate(datesArray[i]);
            if(convertedDate > ownDate)
            {   
                 if(convertedDate < maxDate)         
                 {
                    maxDate = convertedDate;
                    index = i;
                 }
            }
        }
      if(index != -1)
        console.log(datesArray[index]);
    }

    function convertToDate(dateString)
    {

        dateString = dateString.replace(/,/,'-')
        dateString = new Date(dateString)
        return dateString
    }

    getSmallestDate()
  • У вас может быть running minimum script, который больше, чем ваш owndate, что именно то, что я сделал вкод выше
  • Преобразование строки в тот же формат и отправка в метод Date () с последующим обычным сравнением.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...