Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

235
Visualizações
JS merge objects as below out

Need help to get output from input JS merge objects as below out

const input = {
    "data1": [
        {
            "name": "name1",
            "type": "data1",
            "count": 7,
        },
        {
            "name": "name2",
            "type": "data1",
            "count": 3,
        },
        {
            "name": "name4",
            "type": "data1",
            "count": 1,
        }
    ],
    "data2": [
        {
            "name": "name1",
            "type": "data2",
            "count": 3
        },
        {
            "name": "name2",
            "type": "machine",
            "count": 4
        },
    ],
    "data3": [
        {
            "name": "name1",
            "type": "data3",
            "count": 9
        },
        {
            "name": "name2",
            "type": "data3",
            "count": 1
        },
        {
            "name": "name3",
            "type": "data3",
            "count": 5
        },
        {
            "name": "name4",
            "type": "data3",
            "count": 2
        }
    ]
}

const output = [
    {
        "name": "name1",
        "data1": 7,
        "data2": 3,
        "data3": 9
    },
    {
        "name": "name2",
        "data1": 3,
        "data2": 4,
        "data3": 1
    },
    {
        "name": "name3",
        "data1": 0,
        "data2": 0,
        "data3": 5
    },
    {
        "name": "name4",
        "data1": 1,
        "data2": 0,
        "data3": 2
    },
]
about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

I hope I understood your meaning correctly

const input = {
     "data1": [
          {
               "name": "name1",
               "type": "data1",
               "count": 7,
          },
          {
               "name": "name2",
               "type": "data1",
               "count": 3,
          },
          {
               "name": "name4",
               "type": "data1",
               "count": 1,
          }
     ],
     "data2": [
          {
               "name": "name1",
               "type": "data2",
               "count": 3
          },
          {
               "name": "name2",
               "type": "machine",
               "count": 4
          },
     ],
     "data3": [
          {
               "name": "name1",
               "type": "data3",
               "count": 9
          },
          {
               "name": "name2",
               "type": "data3",
               "count": 1
          },
          {
               "name": "name3",
               "type": "data3",
               "count": 5
          },
          {
               "name": "name4",
               "type": "data3",
               "count": 2
          }
     ]
}

const concatObj = []

for (const object in input) {
     if (Array.isArray(input[object]) === true) {
          input[object].map(x => {
               concatObj.push(x)
          })
     }
}
console.log(concatObj);

about 4 years ago · Santiago Gelvez Relatório

0

you can do something like this

const transform = data => Object.values(Object.entries(data)
 .reduce((res, [type, data]) => {
   data.forEach(({name, count}) => {
     res[name] = Object.assign({}, res[name] || {name}, {[type]: count})
   })
   
   return res
 }, {}))




const input = {
  "data1": [{
      "name": "name1",
      "type": "data1",
      "count": 7,
    },
    {
      "name": "name2",
      "type": "data1",
      "count": 3,
    },
    {
      "name": "name4",
      "type": "data1",
      "count": 1,
    }
  ],
  "data2": [{
      "name": "name1",
      "type": "data2",
      "count": 3
    },
    {
      "name": "name2",
      "type": "machine",
      "count": 4
    },
  ],
  "data3": [{
      "name": "name1",
      "type": "data3",
      "count": 9
    },
    {
      "name": "name2",
      "type": "data3",
      "count": 1
    },
    {
      "name": "name3",
      "type": "data3",
      "count": 5
    },
    {
      "name": "name4",
      "type": "data3",
      "count": 2
    }
  ]
}

console.log(transform(input))

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda