15.01.2021, 09:28
|
Аспирант
|
|
Регистрация: 19.05.2020
Сообщений: 46
|
|
Как правильно отсортировать свойства данные по дате и времени?
Всем привет, подскажите, пожалуйста как правильно отсортировать следующие данные по дате и времени?
Чтобы затем с помощью, например объекта Date, получить необходимые данные.
const dates = [
{date: "14.01.2021T22:09:12", title: 1},
{date: "14.01.2021T22:08:17", title: 2},
{date: "14.01.2021T21:58:03", title: 4},
{date: "14.01.2021T21:54:38", title: 5},
{date: "14.01.2021T22:04:12", title: 3},
{date: "14.01.2021T21:51:24", title: 6},
{date: "14.01.2021T21:48:35", title: 7},
{date: "14.01.2021T21:33:49", title: 8},
{date: "14.01.2021T21:07:42", title: 10},
{date: "14.01.2021T21:05:22", title: 11},
{date: "14.01.2021T21:09:09", title: 9},
{date: "14.01.2021T21:03:57", title: 12},
{date: "14.01.2021T21:02:14", title: 13},
{date: "14.01.2021T20:21:21", title: 14},
{date: "14.01.2021T19:59:39", title: 15},
{date: "14.01.2021T19:47:47", title: 17},
{date: "14.01.2021T19:40:28", title: 18},
{date: "14.01.2021T19:49:24", title: 16},
{date: "14.01.2021T19:29:51", title: 19},
{date: "14.01.2021T19:28:40", title: 20},
{date: "14.01.2021T14:08:19", title: 21},
{date: "14.01.2021T13:59:29", title: 22},
{date: "14.01.2021T13:56:22", title: 24},
{date: "14.01.2021T13:56:14", title: 25},
{date: "14.01.2021T13:55:50", title: 26},
{date: "14.01.2021T13:55:42", title: 27},
{date: "14.01.2021T13:55:29", title: 28},
{date: "15.01.2021T07:07:19", title: 0},
{date: "14.01.2021T13:56:57", title: 23},
{date: "14.01.2021T11:33:55", title: 29},
{date: "14.01.2021T11:14:28", title: 30},
{date: "13.01.2021T18:59:53", title: 31},
{date: "13.01.2021T17:18:11", title: 32},
{date: "13.01.2021T17:11:35", title: 33},
{date: "13.01.2021T13:46:57", title: 40},
{date: "13.01.2021T13:35:57", title: 41},
{date: "13.01.2021T13:05:20", title: 42},
{date: "13.01.2021T13:02:12", title: 43},
{date: "13.01.2021T12:56:21", title: 44},
{date: "13.01.2021T17:00:17", title: 34},
{date: "13.01.2021T16:59:36", title: 35},
{date: "13.01.2021T16:56:56", title: 36},
{date: "13.01.2021T16:49:00", title: 37},
{date: "13.01.2021T15:06:49", title: 38},
{date: "13.01.2021T14:03:52", title: 39},
{date: "13.01.2021T12:55:43", title: 45},
{date: "13.01.2021T12:30:40", title: 46},
{date: "13.01.2021T11:50:36", title: 47},
{date: "12.01.2021T15:06:30", title: 48},
{date: "12.01.2021T13:36:05", title: 49},
{date: "12.01.2021T13:13:29", title: 50},
{date: "12.01.2021T13:11:55", title: 51},
{date: "12.01.2021T13:03:05", title: 52},
{date: "12.01.2021T12:58:25", title: 53},
{date: "12.01.2021T12:56:30", title: 54},
{date: "12.01.2021T12:43:40", title: 55},
{date: "12.01.2021T11:03:03", title: 56},
{date: "12.01.2021T11:01:49", title: 57},
{date: "12.01.2021T11:01:13", title: 58},
{date: "12.01.2021T11:00:50", title: 59},
]
Последний раз редактировалось dc65k, 15.01.2021 в 09:56.
|
|
15.01.2021, 10:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
dc65k,
а можно дату в другом формате?
|
|
15.01.2021, 10:36
|
Аспирант
|
|
Регистрация: 19.05.2020
Сообщений: 46
|
|
На самом деле вопрос у меня в том, как лучше именно с таким форматом сделать сортировку. Я понимаю, что можно сделать, используя регулярное выражение, затем new Date и далее .sort().
|
|
15.01.2021, 11:02
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
dc65k,
вы сами ответили на свой вопрос.
|
|
09.02.2021, 12:48
|
Новичок на форуме
|
|
Регистрация: 09.02.2021
Сообщений: 1
|
|
Дайте следующий массив объектов, мне нужно отсортировать их по полю даты по возрастанию.
var myArray = [
{
имя: "Джо Блоу",
дата: "31 октября 2016 г., 00:00:00 GMT-0700 (PDT)"
},
{
имя: "Сэм Снид",
дата: "30 октября 2016 г., 00:00:00 GMT-0700 (PDT)"
},
{
имя: "Джон Смит",
дата: «Сб, 29 октября 2016, 00:00:00 GMT-0700 (PDT)»
}
];
так что в этом примере конечным результатом будут Джон Смит, Сэм Снид и Джо Блоу.
Я пытаюсь использовать lodash _.sortBy (), но не могу выполнить сортировку, как бы я ни пытался ее использовать:
_.sortBy (myArray, function (dateObj) {
дата возвратаObj.date;
});
или
_.sortBy (myArray, 'дата');
Что мне нужно изменить, чтобы мой массив был правильно отсортирован? У меня также есть Moment.js, поэтому я могу использовать его для форматирования строки даты, если это необходимо. Я попытался преобразовать свойство даты с помощью .unix (), но это не имело значения.
Благодарю. psiphone for pc jiofi.local.html
Последний раз редактировалось flisterseven, 09.02.2021 в 20:49.
|
|
09.02.2021, 13:36
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
flisterseven,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
09.02.2021, 13:45
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
sortBy lodash and moment
flisterseven,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/locale/ru.js"></script>
</head>
<body>
<script>
let myArray = [{
имя: "Сэм Снид",
дата: "30 октября 2016 г., 00:00:00 GMT-0700 (PDT)"
},
{
имя: "Джон Смит",
дата: "29 октября 2016 г., 00:00:00 GMT-0700 (PDT)"
},
{
имя: "Джо Блоу",
дата: "31 октября 2016 г., 00:00:00 GMT-0700 (PDT)"
},
{
имя: "Алекс Томпсон",
дата: "29 октября 2016 г., 00:00:00 GMT-0700 (PDT)"
}
];
moment.locale('ru');
myArray = _.sortBy(myArray, [({ дата }) => moment( дата, 'LLL').valueOf(), 'имя']);
document.write(`<pre>${JSON.stringify(myArray, "", 4)}</pre>`)
</script>
</body>
</html>
|
|
|
|