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

168
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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