@constant101

ReactJS: Как распределить элементы из api в jsx блоки по значению даты?

Новичок в JS. Есть такие задачи:
1) загрузить пользователей из api
2) отображения списка месяцев
3) подсветить месяца в зависимости от количества людей, которые родились в этом месяце.
4) при наведении на выбранный месяц - отобразить список людей, родившихся в этом месяце.
К сожалению, я застрял после импорта пользователей из API.
Извините за банальный вопрос:- Каким методом распределить пользователей в блоки (месяцы рождения)? большое спасибо

Код потуг: https://jsfiddle.net/bmnfo2uh/

пример элемента юзера { "id": "5e00928d43fcdd11688a6afd", "firstName": "Moody", "lastName": "Gordon", "dob": "2019-11-09T20:20:43.744Z" }
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Группируете данные по месяцам:

const groupedUsers = users && users.reduce((acc, n) => {
  acc[new Date(n.dob).getMonth()].users.push(n);
  return acc;
}, [...Array(12)].map((n, i) => ({
  month: new Date(0, i).toLocaleString('ru-RU', { month: 'long' }),
  users: [],
})));

Рендерите их, например (это сразу всё; если надо - можете выбирать какой-то конкретный месяц):

{groupedUsers && groupedUsers.map(n => (
  <div key={n.month}>
    <h2>{n.month}</h2>
    {n.users.map(user => (
      <div key={user.id}>
        <h3>user #{user.id}</h3>
        <div>данные пользователя...</div>
      </div>
    ))}
  </div>
))}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы