Как получить минимальное и максимальное значения даты из массива в 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: Люк Слоан-Балджер