Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!