Как получить минимальное и максимальное значения даты из массива в JavaScript?

В этой статье мы обсудим вышеуказанный вопрос.

Есть несколько способов сделать это.

Самый простой способ — использовать методы Math.min() и Math.max().

Что такое Math.Min и Math.Max?

Статический метод JavaScript Math.min() используется для поиска наименьшего значения среди набора предоставленных чисел.

Если параметры не указаны, вместо них возвращается infinity.

console.log(Math.min(1, 2, 3, 4, 5)) // Expected Output: 1
console.log(Math.min()) // Expected Output: Infinity

Статический метод JavaScript Math.max() работает противоположным образом, чем его аналог Math.min().

Однако Math.max() используется для поиска наибольшего значения среди набора чисел.

Если параметры не указаны, вместо них возвращается -infinity.

console.log(Math.max(1, 2, 3, 4, 5)) // Expected Output: 5
console.log(Math.max()) // Expected Output: -Infinity

Вы можете передать массив значений и использовать оператор распространения ... для передачи чисел в этом массиве в качестве аргументов, как в приведенном ниже примере.

const arrOfNumbers = [6, 7, 8, 9, 10]
console.log(Math.min(...arrOfNumbers)) // Expected Output: 6
console.log(Math.max(...arrOfNumbers)) // Expected Output: 10

Как получить минимальную и максимальную даты из массива JavaScript

Как упоминалось выше, методы Math.min() и Math.max() можно использовать для получения минимальной и максимальной дат из массива дат.

Допустим, наш массив дат ниже:

const arrOfDates = [
    new Date("2023/01/01"),
    new Date("2023/01/02"),
    new Date("2023/01/03"),
    new Date("2023/01/04")
]

Чтобы вернуть минимальную и максимальную даты из приведенного выше массива, мы можем использовать комбинацию Math.min(), Math.max() и оператора спреда ....

Например:

const arrOfDates = [
    new Date("2023/01/01"),
    new Date("2023/01/02"),
    new Date("2023/01/03"),
    new Date("2023/01/04")
]

console.log(Math.min(...arrOfDates)) // Expected Output: 1672531200000
console.log(Math.max(...arrOfDates)) // Expected Output: 1672790400000

Распространяя значения даты arrOfDates и передавая их в качестве аргументов в Math.min() и Math.max(), даты преобразуются в их эквиваленты меток времени UNIX (в основном числа) и возвращаются, как показано в приведенном выше примере кода.

Но мы хотим знать фактические минимальные и максимальные значения даты, а не временную метку UNIX.

Как мы можем получить дату вместо этого?

Для этого мы можем просто использовать new Date() и передать временную метку UNIX.

const arrOfDates = [
    new Date("2023/01/01"),
    new Date("2023/01/02"),
    new Date("2023/01/03"),
    new Date("2023/01/04")
]

console.log(new Date(Math.min(...arrOfDates))) // Expected Output: Sun Jan 01 2023 00:00:00 GMT+0000 (Greenwich Mean Time)
console.log(new Date(Math.max(...arrOfDates))) // Expected Output: Wed Jan 04 2023 00:00:00 GMT+0000 (Greenwich Mean Time)

Теперь мы можем видеть наши минимальные и максимальные даты в файле arrOfDates.

Минимальная дата = воскресенье, 01 января 2023 г., 00:00:00 GMT+0000 (время по Гринвичу)

Максимальная дата = среда, 04 января 2023 г., 00:00:00 GMT+0000 (время по Гринвичу)

Краткое содержание

Чтобы получить минимальную и максимальную дату из массива дат в JavaScript, мы можем использовать статические методы Math.min() и Math.max().

Затем с помощью оператора распространения ... в массиве для передачи каждой даты в качестве аргумента в Math.min() и Math.max() эти значения даты преобразуются в их эквивалент временной метки UNIX.

Наконец, мы создаем новый экземпляр даты, передавая метку времени UNIX в new Date(), чтобы легко вернуть минимальную и максимальную дату из массива.

Дальнейшее чтение





Ссылки

Если у вас есть какие-либо вопросы/предложения, вы можете связаться со мной ниже:

Линкедлн

Твиттер

Следуйте за мной на Medium: Люк Слоан-Балджер

Тебе понравилась эта статья? Обязательно поделитесь ею в социальных сетях. Спасибо!