@JordanBelford

Как сгруппировать компоненты по параметру?

Здравствуйте! Столкнулся с такой проблемой, есть объект "номер", перебираю его с помощью map
const numbers = props.mainPage.room.map(item => 
<NumberRoom key={item.id} number={item.number} storey={item.storey} state={item.state}/>);

нужно сделать группировку по полю "storey", всю голову себе сломал, как можно это реализовать?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
0xD34F
@0xD34F
const grouped = props.mainPage.room.reduce((acc, n) => (
  (acc[n.storey] ??= []).push(n),
  acc
), {});

{Object.entries(grouped).map(([ groupName, group ]) => (
  <div className="group" key={groupName}>
    <h3>{groupName}</h3>
    {group.map(n => <NumberRoom key={n.id} {...n} />)}
  </div>
))}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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