Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
¿Cómo podría sumar una propiedad de cada objeto para matrices de objetos separadas?

Tenía un objeto que contenía objetos, cada uno de los cuales tenía una matriz de objetos con 0..n objetos. El objeto principal se veía así:

 { obj1: [{obj1.1}, {obj1.2}, {obj1.3}], obj2: [{obj2.1}] obj3: [{obj3.1}, {obj3.2}] }

Cada objeto (obj1, obj2 y obj3) contenía un grupo de objetos comunes en una matriz de objetos. Por ejemplo, obj1 tiene un grupo de objetos en una matriz de objetos (obj1.1, obj1.2 y obj1.3), todos los cuales tienen una propiedad común que los agrupa.

Ahora quiero poder iterar sobre cada objeto por separado en cada matriz de objetos para sumar una propiedad particular (que tiene cada objeto) para cada matriz de objetos.

He usado Object.keys para iterar sobre cada matriz de objetos, aunque todavía no puedo obtener un valor sumado separado por matriz de objetos.

Por ejemplo:

 { obj1: [ 0: { price: 10 } 1: { price: 10 } 2: { price: 10 } ], obj2: [ 0: { price: 10 } ], obj3: [ 0: { price: 10 } 1: { price: 10 } ] }

Quiero poder sumar el price de la propiedad para cada conjunto de objetos individuales. Por lo tanto, para obj1 debería tener una cantidad total de 30. Para obj2 debería tener una cantidad total de 10 y, por último, para obj3 debería tener una cantidad total de 20.

Puedo iterar sobre cada matriz de objetos usando Object.keys , sin embargo, tal como está ahora, al iterar sobre cada elemento individual en cada matriz de objetos (usando un foreach), solo estoy sumando una cantidad final para todos los objetos en las tres matrices de objetos. Es decir, obtengo una cantidad total de 60.

 var total = 0; for (var key of Object.keys(result)) { result[key].forEach(element => { total += element.Price; }); }; console.log(total);

¿Qué podría usar para obtener las tres cantidades sumadas individualmente por matriz de objetos?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

function sum(prices) { let total = 0; prices.forEach((entry) => total += entry.price); return total; } console.log(sum(obj1)); console.log(sum(obj2)); console.log(sum(obj3));

¿Por qué fue tan difícil de nuevo? Tenías el código correcto, solo necesitabas descifrar las cosas.

about 4 years ago · Juan Pablo Isaza Denunciar

0

  • Usando Object#entries , obtenga los pares de matriz de claves
  • Usando Array#reduce , itere sobre esta lista
  • En cada iteración, usando Array#reduce , puede calcular el precio total y guardarlo como valor para la clave actual

 const data = { obj1: [ { price: 10 }, { price: 10 }, { price: 10 } ], obj2: [ { price: 10 } ], obj3: [ { price: 10 }, { price: 10 } ] }; const res = Object.entries(data).reduce((totalMap, [key, arr]) => ({ ...totalMap, [key]: arr.reduce((total, { price }) => total + price, 0) }), {}); console.log(res);

about 4 years ago · Juan Pablo Isaza Denunciar

0

sin embargo, aquí hay otra forma de obtener el resultado como una matriz:

 let obj={obj1:[{price:10},{price:10},{price:10}],obj2:[{price:10}],obj3:[{price:10},{price:10}]}; let result = Object.entries(obj) .map(([k,v]) => ( {[k]:v.reduce((acc,e) => acc+=e.price ,0)} ) ) console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda