Задать вопрос
@DedliParkurKillerDark

Как получить самую давнюю дату, хранящуюся в массиве?

Вот к примеру есть массив "arr" и в нём такие значения:
const arr = [
 {date: '2022-11-06T03:15:26.155Z'},
 {date: '2022-11-10T13:12:23.165Z'},
 {date: '2022-10-05T04:20:30.155Z'},
 {date: '2022-12-04T03:15:26.135Z'},
 {date: '2022-05-06T03:15:26.105Z'}
]


Как получить самую давнюю дату?
На глаз это просто понять, самая давняя дата здесь - '2022-05-06T03:15:26.105Z', но как получить её с помощью какой-нибудь функции?
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const [ date = null ] = arr.map(n => n.date).sort();

или

const date = arr.reduce((min, { date: n }) => min !== null && min < n ? min : n, null);

или

const date = arr.length
  ? new Date(Math.min(...arr.map(n => new Date(n.date)))).toISOString()
  : null;
Ответ написан
Комментировать
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
new Date( // чтобы конечный результат был в виде человеко читаемой строки
 Math.min.apply(  // применим функцию поиска минимального элемента в массиве с помощью apply
   null, // контекст не нужен
   arr.map(i => new Date(i.date)) // в качестве массива, среди которого ищем минимум - массив дат, преобразованных в Date
  )
).toISOString() // собственно, преобразовываем в человеко понятную строку.


Ну или нагляднее:
const dates = arr.map(i => new Date(i.date))
const minDate = Math.min.apply(null, dates)
const minDateString = new Date(minDate).toISOString()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы