@lookingfor2

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

Есть объекты такого вида.
[
{
        "user_id": 3,
        "json_build_object": {
            "bank_props": {
                "id": 5,
                "user_id": 3,
                "organization": "4049725573",
                "individual_external_id": "951ac602-55e3-4c44-b35d-560da614052b",
                "individual_guid": "951ac602-55e3-4c44-b35d-560da614052b",

           
            },
            "settlements": {
                "id": 5,
                "user_id": 3,
                "organization": "2466557538",
                "individual_external_id": "951ac602-55e3-4c44-b35d-560da614052b",
                "individual_guid": "951ac602-55e3-4c44-b35d-560da614052b",
             
            }
        }
    },
    {
        "user_id": 3,
        "json_build_object": {
            "bank_props": {
                "id": 5,
                "user_id": 3,
                "organization": "4049725573",
                "individual_external_id": "951ac602-55e3-4c44-b35d-560da614052b",
                "individual_guid": "951ac602-55e3-4c44-b35d-560da614052b",
              
            },
            "settlements": {
                "id": 6,
                "user_id": 3,
                "organization": "3198309645",
                "individual_external_id": "951ac602-55e3-4c44-b35d-560da614052b",
                "individual_guid": "951ac602-55e3-4c44-b35d-560da614052b",
       
            }
        }
    },
]

Как их объедденить, чтобы на выходе получился объект такого выида
{
  "bank_props": [
    {
      "id": 5,
                "user_id": 3,
                "organization": "4049725573",
                "individual_external_id": "951ac602-55e3-4c44-b35d-560da614052b",
                "individual_guid": "951ac602-55e3-4c44-b35d-560da614052b",
       
    }
  ],
  "settlements": [
     {
                "id": 6,
                "user_id": 3,
                "organization": "3198309645",
                "individual_external_id": "951ac602-55e3-4c44-b35d-560da614052b",
                "individual_guid": "951ac602-55e3-4c44-b35d-560da614052b",
            
            },
 {
                "id": 5,
                "user_id": 3,
                "organization": "2466557538",
                "individual_external_id": "951ac602-55e3-4c44-b35d-560da614052b",
                "individual_guid": "951ac602-55e3-4c44-b35d-560da614052b",
    
            }
  ]
}
  • Вопрос задан
  • 94 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const temp = data.reduce(
  (acc, cur) => {
    acc.bank_props[cur.bank_props.id] = cur.bank_props;
    acc.settlements[cur.bank_props.id] = cur.settlements;
    return acc;
  },
  { bank_props: {}, settlements: {} }
);
const result = {
  bank_props: Object.values(temp.bank_props),
  settlements: Object.values(temp.settlements),
};
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
arr.reduce((acc, n) => (
  Object.entries(n.json_build_object).forEach(([ k, v ]) => {
    (acc[k] ??= []).find(m => m.id === v.id) || acc[k].push(v);
  }),
  acc
), {})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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