Рубрики
Без рубрики

JavaScript Story – Сортировка записей по датам

Я с нетерпением ждал, чтобы написать сообщение в блоге, которое я могу добавить в категорию «историй». Я хотел бы сказать вам, что мне пришлось сделать в последнее время, работая на даты в JavaScript. Моя задача состояла в том, чтобы получить все …

Автор оригинала: Robert Wozniak.

Я с нетерпением ждал, чтобы написать сообщение в блоге, которое я могу добавить в категорию «историй». Я хотел бы сказать вам, что мне пришлось сделать в последнее время, работая на даты в JavaScript.

Моя задача состояла в том, чтобы получить все доступные записи из базы данных, пройти через них и сортировать их по дате представления. Новейшие должны были быть первыми в списке.

1. Как я это сделал?

Я создал функцию под названием SortRecordsBydate. Функция принимала один параметр, который представляет собой список записей из базы данных. Это массив объектов.

function sortRecordsByDate(records) {
    
};

Формат даты, поступающий из базы данных: 12/11/2018, и мне пришлось сохранить этот формат для пользователя. Я знал, что хочу вернуть новый массив предметов иммистиеталий после сопоставления через него.

return records.map(record => {
   const dateString = records.submissionDate.split('/').reverse().toString();
   const dateTimestamp = Date.parse(dateString);
   
   record.submissionDate = dateTimestamp;

   return record;
 })

Я решил использовать карту, которая позволяет мне вернуть новый массив. Позвольте мне сказать вам, что происходит внутри. Я получаю свойство «подчинение» и расщеплению его значения по SLASH, он преобразует его на массив, что позволяет мне использовать обратную функцию и преобразовывать ее в строку.

Почему я поменяю это? Я должен был отменить его, потому что, когда вы хотите создать новую дату, используя конструктор «New Date», формат даты должен быть: 2018/11/12.

Следующим шагом является преобразование нашей даты в форме временной метки времени. На следующем шаге я назначаю новую ценность для свойства «Подача». В конце я возвращаю новую запись, которая содержит новое значение времени времени вместо даты.

Мы все? Еще нет. Мы все еще должны его отсортировать.

return records.map(record => {
   const dateString = record.submissionDate.split('/').reverse().toString();
   const dateTimestamp = Date.parse(dateString);

   record.submissionDate = dateTimestamp;

   return record;
 }).sort((a, b) => b.submissionDate – a.submissionDate);

Простая формула сортировки позволила мне отсортировать записи от последней до самой древнейшей, используя Timestamp для него. Теперь у меня были все объекты, отсортированные правильно. Я все еще был один, чтобы сделать, хотя. Мне пришлось преобразовать свои временные метки для читабельной формы даты для пользователя.

.map(record => {
  const submissionDate = new Date(record.submissionDate).toLocaleDateString('en-GB');
  record.submissionDate = submissionDate;

  return record;
 });

Я использовал метод карты в сочетании в цепочке, чтобы принести наши старые даты, преобразовав временную метку в локальную строку даты. Функция выглядит так:

function sortRecordsByDate(records) {
    return records.map(record => {
         const dateString = record.submissionDate.split('/').reverse().toString();
         const dateTimestamp = Date.parse(dateString);

         record.submissionDate = dateTimestamp;

         return record;
    }).sort((a, b) => b.submissionDate – a.submissionDate).map(record => {
        const submissionDate = new Date(record.submissionDate).toLocaleDateString('en-GB');
        record.submissionDate = submissionDate;

        return record;
   });
};

Это было бы это, спасибо за чтение. Если у вас есть какие-либо предложения, пожалуйста, дайте мне знать в комментариях ниже.