Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   .map по дате (https://javascript.ru/forum/dom-window/84889-map-po-date.html)

NeonMan 28.01.2023 10:47

.map по дате
 
[
 {
  date: today
 },
 {
  date: tomorrow
 },
 {
  date: '2023-01-30
 },
 {
  date: '2023-01-31'
 },
]


Подскажите, как сделать .map (или другой перебор массива), имея массив с объектами, где в каждом объекте есть ключ date, cоздавая для каждой уникальной даты (по дням) div с датой (прим.
<div>30/01</div>
), но div с датами за сегодня и завтра должны называться today и tomorrow.

Aetae 28.01.2023 11:24

.map(({date}) => {
  const match = date.match(/^\d\d\d\d-(\d\d)-(\d\d)$/);
  
  if (match) {
    const [, mm, dd] = match;
    date = `${dd}/${mm}`;
  }
  
  return `<div>${date}</div>`;
})

NeonMan 30.01.2023 16:33

Увы, но этот вариант не подходит, нужно создавать контейнер для каждой новой(уникальной ) даты, а не match по конкретной

рони 30.01.2023 16:52

Цитата:

Сообщение от NeonMan
нужно создавать контейнер для каждой новой(уникальной ) даты, а не match по конкретной

подожду переводчика ...

Aetae 30.01.2023 17:28

Мб так, но на самом деле хз.)
const res = [...new Set(arr.map(({date}) => {
  const match = date.match(/^\d\d\d\d-(\d\d)-(\d\d)$/);
  
  if (match) {
    const [, mm, dd] = match;
    date = `${dd}/${mm}`;
  }
  
  return `<div>${date}</div>`;
}))];


Часовой пояс GMT +3, время: 04:58.