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

158
Visualizações
Sumar matriz de objetos con claves dinámicas - Javascript

Tengo la siguiente matriz

 arr = [ { 'Atencion Personalizada': 2, 'Caja': 3 }, { 'Atencion Personalizada': 1 }, { 'Tarifa Social': 3 } ]

Salida esperada: 9

Y me gustaría resumir las propiedades de la manera más corta posible. La cuestión es que las claves de objeto siempre son variables, por lo que no puedo optar por:

 arr.reduce((acc,item) => acc+item.keyName)

Encontré esta publicación pero tampoco puedo adaptar el código a mi solución:

 var data = [{ A: 4, B: 2 }, { A: 2, B: 1 }, { A: 3, B: 1 }, { A: 2, B: 1, C: 1 }], result = data.reduce((r, o) => (Object.entries(o).forEach(([k, v]) => r[k] = (r[k] || 0) + v), r), {});

Gracias de antemano

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Aquí está mi solución. Mapee a través de la matriz y aplane los valores de las propiedades, luego redúzcalos.

 const arr = [ { 'Atencion Personalizada': 2, 'Caja': 3 }, { 'Atencion Personalizada': 1 }, { 'Tarifa Social': 3 } ] console.log(arr.flatMap(e => Object.values(e)).reduce((a, b) => a + b));

about 4 years ago · Juan Pablo Isaza Relatório

0

Use reduce dos veces, una en la matriz externa y otra en los valores de cada objeto dentro de ella.

 const arr = [ { 'Atencion Personalizada': 2, 'Caja': 3 }, { 'Atencion Personalizada': 1 }, { 'Tarifa Social': 3 } ]; const total = arr.reduce((gt, item) => gt + Object.values(item).reduce((t, sub) => t + sub, 0) , 0); console.log(total);

about 4 years ago · Juan Pablo Isaza Relatório

0

¿Quizás algo como esto?

 let acc = {}; for (let o of arr) for (let key in o) { acc[key] ??= 0; acc[key] += o[key]; }

Aunque no es una sola línea

about 4 years ago · Juan Pablo Isaza 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