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.
Estaré respondiendo a un código más genérico, si me lo permiten:
{} ) 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); ... });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); });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()); } }); });