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

188
Views
Javascript: la forma más corta de escribir múltiples condiciones if dentro del ciclo forEach sin escribir un método separado

Tengo debajo de cada bucle

 this.cfData.customAttributes.forEach(function (currentObj) { if(currentObj.inputValues !== null) { currentObj.inputValues = Array.prototype.map.call(currentObj.inputValues, function(item) { return item.value; }).join(", "); } if(currentObj.objectType !== null){ currentObj.objectType = currentObj.objectType.toLowerCase().replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase()); } if(currentObj.dataType !== null){ currentObj.dataType = currentObj.dataType.toLowerCase().replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase()); } if(currentObj.isGridEligible !== null){ currentObj.isGridEligible = currentObj.isGridEligible.toLowerCase().replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase()); } if(currentObj.isInvoiceEligible !== null){ currentObj.isInvoiceEligible = currentObj.isInvoiceEligible.toLowerCase().replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase()); } });

Me preguntaba si hay alguna forma más corta de escribir estas condiciones dentro del bucle. Por favor recomiende.

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

0

Estaré respondiendo a un código más genérico, si me lo permiten:

  1. En primer lugar, si está utilizando declaraciones individuales, los corchetes ( {} ) alrededor de if s se pueden eliminar.
 objArr.forEach(obj => { if(obj.propA !== null) obj.propA = getPropA(obj); if(obj.propB !== null) obj.propB = getPropB(obj); ... });
  1. Siempre puede crear un código demasiado complicado con funciones asignadas ( getPropA , getPropB , etc.).
 const getProps = { propA(obj){ return ...; }, propB: obj => ..., ... }; objArr.forEach(obj => { // Object.entries receives an object, and returns an array // in the form [ key, value ][] for(var [ prop, getter ] of Object.entries(getProps)) if(obj[prop] !== null) obj[prop] = getter(obj); });
about 4 years ago · Juan Pablo Isaza Report

0

Puedo recomendar este código que es mucho más simple y corto.

 this.cfData.customAttributes.forEach(function (currentObj) { const arr = ["objectType", "dataType", "isGridEligible", "isInvoiceEligible"]; if (currentObj.inputValues !== null) { currentObj.inputValues = Array.prototype.map.call(currentObj.inputValues, function (item) { return item.value; }).join(", "); } arr.forEach(item => { if (currentObj[item] !== null) { currentObj[item] = currentObj[item].toLowerCase().replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase()); } }); });
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!