@eldenhard2

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

Есть следующая структура:
"cargo": [
                  {
                    "name": "Грузинская ж. д.",
                    "Щебень гранитный не поименованный в алфавите": {
                      "amount": 275,
                      "stavka": 0,
                      "revenue": 0
                    }
                  },
                  {
                    "name": "Московская ж. д.",
                    "Щебень гранитный не поименованный в алфавите": {
                      "amount": 138,
                      "stavka": 0,
                      "revenue": 0
                    }
                  }
                ]
              }
            ],

Необходимо чтобы после name шли все свойства (amount. revenue.stavka)
т.е. структура должна быть такого вида.:
"cargo": [
                  {
                    "name": "Грузинская ж. д.",
                      "amount": 275,
                      "stavka": 0,
                      "revenue": 0
                
                  },
                  {
                    "name": "Московская ж. д.",
                      "amount": 138,
                      "stavka": 0,
                      "revenue": 0
         
                  }
                ]
              }
            ],


Привожу данные получаемые от сервера к такому виду следующим способом:
const test = Object.keys(this.objects2.data).map((key) => {
        const obj = {
          road: key,
          attr1: Object.keys(this.objects2.data[key].data).map((client) => {
            return {
              client,
              attr3: Object.keys(this.objects2.data[key].data[client].data).map(
                (road) => {
                  return {
                    road,
                    cargo: Object.keys(
                      this.objects2.data[key].data[client].data[road].data
                    ).map((cargo) => {
                      return {
                        name: cargo,
                        ...this.objects2.data[key].data[client].data[road].data[cargo].data
        
                      };
                    }),
                  };
                }
              ),
              total: this.objects2.data[key].data[client].total,
            };
          }),
          TOTAL_ROAD: this.objects2.data[key].total,
        };
        return obj;
      });
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
szQocks
@szQocks
const arr = [
                  {
                    "name": "Грузинская ж. д.",
                    "Щебень гранитный не поименованный в алфавите": {
                      "amount": 275,
                      "stavka": 0,
                      "revenue": 0
                    }
                  },
                  {
                    "name": "Московская ж. д.",
                    "Щебень гранитный не поименованный в алфавите": {
                      "amount": 138,
                      "stavka": 0,
                      "revenue": 0
                    }
                  }
            ]

console.log(arr.map(n => ({ name: n.name, ...Object.values(n)[1] }) ))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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