Tengo dos condiciones booleanas para filtrar una matriz. Una matriz siempre tendrá 3 elementos dentro, y la primera condición siempre elimina el segundo elemento, la segunda condición el tercero. Y lo filtré con éxito usando .filter . Pero parece que mi enfoque es un poco sucio, ¿hay alguna forma mejor y más clara de filtrar?
const firstCondition = true; const secondCondition = true; const arrayToFilter: Array<string> = ['firstItem', 'secondItem', 'thirdItem'].filter( (item, idx) => firstCondition && secondCondition ? item : !firstCondition && secondCondition ? idx !== 1 : !firstCondition && !secondCondition ? idx === 0 : firstCondition && !secondCondition && idx !== 2 ); console.log(arrayToFilter);Editar: Aclaración Si las condiciones son falsas, eliminan elementos
¿Qué tal esto?
const arrayToFilter: Array<string> = ['firstItem', 'secondItem', 'thirdItem'].filter( (item, idx) => { if (!firstCondition && idx === 1) return false if (!secondCondition && idx === 2) return false else return true } );probar,
.... (item, index) => ( (firstCondition && index !== 1) || (secondCondition && index !== 2) || true // (!firstCondition && !secondCondition) )