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

97
Visualizações
Cómo obtener la suma de dos claves de objeto que cumplen una condición

Tengo un obj que tiene los siguientes valores/clave

 var pay = [ { journal: 23, regdate: "31/08/2021", account: "2.1.01.0001.02181 Folha de Pagamento:Salarios a Pagar", debitvalue: "3003,58", creditvalue: "", itemdescrip: "Valor ref folha de pgto, mês 08/2021", name: "", branch: "", costcenter: "", message: "", }, { journal: 23, regdate: "31/08/2021", account: "2.1.01.0001.02181 Folha de Pagamento:Salarios a Pagar", debitvalue: "", creditvalue: "4003,58", itemdescrip: "Valor ref folha de pgto, mês 08/2021", name: "", branch: "", costcenter: "", message: "", }, ];

Me gustaría restar todo el "valor de débito" del "valor de crédito" donde se cumple una condición, es decir, la clave de cuenta contiene 2.1.01.0001.02181

Probé map, filter, indexOf, contains y todo lo cual devuelve [].

El resultado esperado debería ser 3.000 Estoy comenzando con javascript y no sé mucho. Gracias.

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

0

Algo como esto funcionará.

 let diff pay.forEach((obj) => { if (obj.account.includes('2.1.01.0001.02181')) { let credit = parseInt(obj['creditvalue'].replace(/,/g, '.')) || 0 let debit = parseInt(obj['debitvalue'].replace(/,/g, '.')) || 0 diff = credit - debit } }) console.log(diff)

Lancé algunas expresiones regulares para lidiar con las comas en sus datos.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede hacerlo con funciones de matriz simples como .reduce

 var pay = [ { journal: 23, regdate: "31/08/2021", account: "4.1.01.0001.04200 Despesas com folha de pagamento:Salarios", debitvalue: "4003.58", creditvalue: "", itemdescrip: "Valor ref folha de pgto, mês 08/2021", name: "", branch: "", costcenter: "", message: "", }, { journal: 23, regdate: "31/08/2021", account: "2.1.01.0001.02181 Folha de Pagamento:Salarios a Pagar", debitvalue: "", creditvalue: "4003.58", itemdescrip: "Valor ref folha de pgto, mês 08/2021", name: "", branch: "", costcenter: "", message: "", }, ]; const totalAmount = pay.reduce( (total, currentPay) => { if (currentPay.account.includes("2.1.01.0001.02181")) { total = total + +currentPay.creditvalue - currentPay.debitvalue; } return total; }, 0) console.log(totalAmount);

about 4 years ago · Juan Pablo Isaza Relatório

0

Para lograr mis necesidades utilicé la colaboración de los muchachos para implementar el siguiente código

 const totalAmount = pay.reduce( (total, currentPay) => { if (currentPay.account.includes('2.1.01.0001.02181')) { var d = parseFloat(currentPay.debitvalue.replace(/,/g, '.')) || 0; var c = parseFloat(currentPay.creditvalue.replace(/,/g, '.')) || 0; total += +c - d; } return total; }, 0)

¡Gracias chicos!

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