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

110
Visualizações
Problemas para simplificar condicional

Tengo problemas para simplificar una declaración condicional. Se parece a esto:
Hay una matriz de matrices como esta, dados = [[a, b], [c, d]].
a, b, c y d representan números aleatorios en un dado 1 > 6.
Cada matriz en la matriz representa una tirada de dos dados donde la última tirada es [c, d] = [2, 5] por ejemplo,
y la penúltima tirada es [a, b] = [3, 6] por ejemplo.
Ahora, si sacas 2 x 1 seguidos o 2 x 6 seguidos, algo sucede. entonces, a + c || a + d y b + c || b + d no puede ser 2 o 12.
El condicional de abajo funciona, pero creo que si abres la puerta al infierno se ve más bonito.
dados = última tirada = [c, d]
prev = penúltimo rollo = [a, b]

 if (dice[0] + prev[0] === 2 || dice[1] + prev[1] === 2 || dice[1] + prev[0] === 2 || dice[0] + prev[1] === 2 && dice[0] + prev[0] === 12 || dice[1] + prev[1] === 12 || dice[1] + prev[0] === 12 || dice[0] + prev[1] === 12){ //something happens here }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Yo haría algo como esto:

 var combinations = dice.reduce(function(acc, curr) { return acc.concat(prev.map(function(curr2) { return curr + curr2; })); }, []); if (combinations.indexOf(2) !== -1 && combinations.indexOf(12) !== -1) { //something happens here }

En ES6 es un poco más corto:

 const combinations = dice.reduce((acc, curr) => acc.concat(prev.map(curr2 => curr + curr2)), []); if (combinations.indexOf(2) !== -1 && combinations.indexOf(12) !== -1) { //something happens here }

Lo que esto realmente hace es calcular todas las combinaciones (sumas) y luego verificar si una es 2 y la otra es 12.

about 4 years ago · Juan Pablo Isaza Relatório

0

Salí con una solución más simple más adecuada a su necesidad

 const throws1 = [[1, 2], [3, 4]] const throws2 = [[1, 2], [3, 1]] const throws3 = [[1, 6], [6, 1]] const checkCondition = (prev, dice) => [1, 6].every(res => prev.includes(res) && dice.includes(res)) console.log(checkCondition(...throws1)) console.log(checkCondition(...throws2)) console.log(checkCondition(...throws3))

about 4 years ago · Juan Pablo Isaza Relatório

0

La condición solo puede ocurrir cuando dice y prev contienen 1 o 6. Entonces, podemos verificar eso.

 let throws = [[5,3],[1,6]]; let prev = throws[0]; let dice = throws[1]; if ((prev.includes(1) && dice.includes(1)) || (prev.includes(6) && dice.includes(6))){ console.log("2 or 12 occurs") } else { console.log("2 and 12 do not occur") }

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