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

162
Views
Agregar valor a sí mismo en ForEach usando claves Javascript

Estoy tratando de recorrer una matriz y sumar valores para cada Departamento en la matriz. Vea abajo. Estoy tratando de recorrer los objetos y agregar todos los valores de dinero (sumarlos) por departamento.

 var awards = [ { Department: "AL", Money: 100 }, { Department: "AL", Money: 100 }, { Department: "OB", Money: 200 }, { Department: "AL", Money: 100 }, { Department: "OB", Money: 200 } ]; var myObj = {}, array1 = [], sum = 0, array2 = [], myObj2 = {}; var activeDepartments = ["AL", "OB"]; //FOREACH Object.keys(awards).forEach(function(key, index) { var department = awards[key].Department; var money = awards[key].Money; sum = 0; // console.log(this[index].Money); if (activeDepartments.indexOf(department) !== -1) { sum += this[index].Money; myObj[department] = sum; } //console.log(index); }, awards); array1.push(myObj); //PUSH OBJECT TO ARRAY console.log(array1); //trying to get object to look like this: [{AL:300}, {OB:400}]

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

En lugar de sum = 0 , necesita sum = myObj[department] ?? 0; . De esta forma, no reenvías la suma en cada iteración del ciclo. Lo que hace esa línea de código es verificar si la expresión a la izquierda de ?? ( myObj[department] ) está definido. Si lo es, asigna su valor a sum. De lo contrario, asigna el valor de la expresión a la derecha de ?? .

about 4 years ago · Juan Pablo Isaza Report

0

Ya se ha resuelto una pregunta similar en Sumar claves similares en una matriz de objetos

en tu caso el código se vería así

 var awards = [ { Department: "AL", Money: 100 }, { Department: "AL", Money: 100 }, { Department: "OB", Money: 200 }, { Department: "AL", Money: 100 }, { Department: "OB", Money: 200 } ]; var holder = {}; awards.forEach(function(award) { if (holder.hasOwnProperty(award.Department)) { holder[award.Department] = holder[award.Department] + award.Money; } else { holder[award.Department] = award.Money; } }); var finalArray = []; for (var prop in holder) { finalArray.push( {[prop]: holder[prop]} ); } console.log(finalArray);

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!