Задать вопрос
@alex_kulkoff

Как правильно изменить объект?

Всем привет, подскажите, пожалуйста, как мне правильно изменить объект.
Исходный объект:
tasks = [
                    {
                      textTask: 'Задача 1',
                      user: {
                        id: 1,
                        name: 'User1'
                      }
                    },
                    {
                      textTask: 'Задача 2',
                      user: {
                        id: 2,
                        name: 'User2'
                      }
                    },
                    {
                      textTask: 'Задача 3',
                      user: {
                        id: 1,
                        name: 'User1'
                      }
                    },
                    {
                      textTask: 'Задача 4',
                      user: {
                        id: 1,
                        name: 'User1'
                      }
                    },
                    {
                      textTask: 'Задача 5',
                      user: {
                        id: 2,
                        name: 'User2'
                      }
                    }
                  ]


Как можно сделать это в виде такого:
tasks = [
                    {
                      user: {
                        id: 1,
                        name: 'User1',
                        tasks: [
                          {
                            textTask: 'Задача 1'
                          },
                          {
                            textTask: 'Задача 3'
                          },
                          {
                            textTask: 'Задача 4'
                          }
                        ]
                      }
                    },
                    {
                      user: {
                        id: 2,
                        name: 'User2',
                        tasks: [
                          {
                            textTask: 'Задача 2'
                          },
                          {
                            textTask: 'Задача 5'
                          }
                        ]
                      }
                    }
                  ]
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Object.values(tasks.reduce((acc, { user: { id, name }, ...n }) => {
  (acc[id] = acc[id] || { user: { id, name, tasks: [] } }).user.tasks.push(n);
  return acc;
}, {}))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы