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

Есть 3 запроса на сервер, каждый запрос возвращает вот такие данные:

1 Запрос:
fieldOne[
  Object {
    "id": "1",
    "name": "Admin",
    "series": Array [
      Object {
        "name": "2018",
        "value": "57",
      },
      Object {
        "name": "2019",
        "value": "3",
      },
      Object {
        "name": "2020",
        "value": "10",
      },
    ],
  },
  Object {
    "id": "3",
    "name": "Misha",
    "series": Array [
      Object {
        "name": "2020",
        "value": "7",
      },
    ],
  },
  Object {
    "id": "4",
    "name": "N",
    "series": Array [
      Object {
        "name": "2020",
        "value": "1",
      },
    ],
  }
]


2 запрос:
fieldTwo[
  Object {
    "id": "1",
    "name": "Admin",
    "series": Array [
      Object {
        "name": "2020",
        "value": "1",
      },
    ],
  },
  Object {
    "id": "2",
    "name": "Andrey",
    "series": Array [
      Object {
        "name": "2020",
        "value": "1",
      },
    ],
  },
  Object {
    "id": "4",
    "name": "N",
    "series": Array [
      Object {
        "name": "2020",
        "value": "2",
      },
    ],
  }
]


3 запрос:
fieldThree[
  Object {
    "id": "1",
    "name": "Admin",
    "series": Array [
      Object {
        "name": "2020",
        "value": "17",
      },
    ],
  },
  Object {
    "id": "3",
    "name": "Misha",
    "series": Array [
      Object {
        "name": "2020",
        "value": "7",
      },
    ],
  },
  Object {
    "id": "4",
    "name": "N",
    "series": Array [
      Object {
        "name": "2020",
        "value": "5",
      },
    ],
  }


В каждом сетевом запросе важно только то к какому полю он относится(fieldOne,fieldTwo,fieldThree) и value.
Все данные с 3 запросов надо сгруппировать вот в такой массив:
[
{
   name: 'Admin',
   fieldOne: 32//(сумма всех value относящихся к данному запросу и пользователю),
   fieldTwo: 23//(сумма всех value относящихся к данному запросу и пользователю),
   fieldThree: 44//(сумма всех value относящихся к данному запросу и пользователю),
},
{
   name: 'Misha',
   fieldOne: 32//(сумма всех value относящихся к данному запросу и пользователю),
   fieldTwo: 23//(сумма всех value относящихся к данному запросу и пользователю),
   fieldThree: 44//(сумма всех value относящихся к данному запросу и пользователю),
},
{
   name: 'Andrey',
   fieldOne: 32//(сумма всех value относящихся к данному запросу и пользователю),
   fieldTwo: 23//(сумма всех value относящихся к данному запросу и пользователю),
   fieldThree: 44//(сумма всех value относящихся к данному запросу и пользователю),
},
]
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
1. На чистом js полно методов для работы с массивами и объектами. Вам в помощь такие методы как `.map`, `.reduce`, `.find`
2. На Lodash. Тут огромный выбор методов. Комбинация которых поможет вам сделать все правильно: https://lodash.com/docs/4.17.15
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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