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

182
Visualizações
cómo organizar una gran matriz condicional

Tengo que crear una matriz con muchas condiciones. pero cuando trato de leer lo que escribí es muy complicado saber lo que estoy tratando de hacer. así que trato de simplificar a estas condiciones, pero no se me ocurre nada. las ubicaciones también son importantes. ¿Cómo puedo simplificar este bloque de código?

 const createArrayByConditions = (condition1, condition2, condition3, condition4) => { if (condition1) { if (condition4) { return [ 1, 4, 999, ]; } else { return [1, 999]; } } if (condition2) { if (condition4) { return [ 2, 4, 999, ]; } return [2, 999]; } if (condition3) { if (condition4) { return [ 3, 4, 999, ]; } else { return [3, 999]; } } if (condition4) { return [4, 999]; } else { return [999]; } };
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Me viene a la mente una solución bastante limpia. Parece que la matriz de retorno siempre contiene 999 , por lo que comenzamos con una matriz con solo ese valor. 4 también se incluye siempre que condition4 sea veraz. Por último, debemos agregar el prefijo 1 , 2 o 3 , en función de qué conditionN se evalúe primero como un valor verdadero.

 function createArrayByConditions( condition1, condition2, condition3, condition4 ) { const array = [999]; if (condition4) array.unshift(4); if (condition1) array.unshift(1); else if (condition2) array.unshift(2); else if (condition3) array.unshift(3); return array; }
about 4 years ago · Juan Pablo Isaza Relatório

0

En general, parece que no hay nada que simplificar. Tienes tus condiciones y la complejidad está ahí. Si no puede hacer más suposiciones sobre los valores devueltos (son ejemplos, supongo), entonces está bien con lo que tiene.

Personalmente, prefiero los operadores ternarios si cada ruta condicional finalmente devuelve un valor del mismo tipo. Pero sé que fácilmente puedes pegarte un tiro en el pie con ellos. Sin embargo, puede decidir sobre la legibilidad:

 const createArrayByConditions = (c1, c2, c3, c4) => c1 ? (c4 ? [1, 4, 999] : [1, 999]) : c2 ? (c4 ? [2, 4, 999] : [2, 999]) : c3 ? (c4 ? [3, 4, 999] : [3, 999]) : (c4 ? [4, 999] : [999]);
about 4 years ago · Juan Pablo Isaza Relatório

0

Esto es lo máximo que pude simplificar las condiciones al hacer un bucle de los argumentos pasados como una matriz:

 const createArrayByConditions = (conditions) => { for(let i=0;i<3;i++){ if ( conditions[i] && conditions[3] ){ return [i+1, 4, 999] } else if( conditions[i] ){ return [i+1, 999]; } } if(conditions[3]) return [4, 999]; else return [999]; }; //1-4 console.log( createArrayByConditions([true, false, false, false]) ); //-> [1,999] console.log( createArrayByConditions([true, false, false, true]) ); //-> [1,4,999] //2-4 console.log( createArrayByConditions([false, true, false, false]) ); //-> [2,999] console.log( createArrayByConditions([false, true, false, true]) ); //-> [2,4,999] //3-4 console.log( createArrayByConditions([false, false, true, false]) ); //-> [3,999] console.log( createArrayByConditions([false, false, true, true]) ); //-> [3,4,999] //4 console.log( createArrayByConditions([false, false, false, true]) ); //-> [4,999] console.log( createArrayByConditions([false, false, false, false]) ); //-> [999]

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