Tengo una matriz de objetos, llamo a una serie de métodos en la matriz. Quería saltar entre métodos basados en una condición. ¿Hay una forma genérica de manejarlo en lugar de tener un bloque if/else?
Cuando se aplica un filtro, quería llamar al método de filtro en esta matriz, cuando no se aplica el filtro, quiero omitirlo.
// when filter is applied salesActivityTypes .filter(s=>s.selected) .map(key => key.name); //when filter not applied salesActivityTypes .map(key => key.name);No quiero usar algo como el bloque if/else y copiar y pegar el mismo código dos veces. ¿Hay alguna manera mejor de manejar esto?
El orden de los métodos es importante y no debería cambiar
Simplemente agregue otra verificación dentro de la devolución de llamada .filter para ver si el filtrado está activo.
salesActivityTypes .filter(s => filteringActive ? s.selected : true) .map(key => key.name);No necesita un bloque if/else, y la expresión if/else es suficiente y puede ser parte de su cadena:
(filteringActive ? salesActivityTypes.filter(s => s.selected) : salesActivityTypes ).map(key => key.name); Alternativamente, en este caso particular, también puede pasar una devolución de llamada sin operación para filter :
salesActivityTypes .filter(filteringActive ? (s => s.selected) : (_ => true)) .map(key => key.name);