Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
Para obtener una condición de verdad (matriz) de una matriz anidada, por ahora la función devuelve el valor booleano verdadero

La función checkWin devuelve verdadero cuando una matriz que son números de índice tiene un símbolo especificado en los índices de otra matriz. ¿Cómo recuperar la "condición" (matriz) que resulta verdadera de la matriz winConditions anidada?

Los símbolos se rellenan con el detector de eventos de clic.

El resultado esperado debería ser, si .some(cond) se vuelve verdadero, entonces devuelve esa cond para, por ejemplo. si el símbolo "X" está presente en [0, 1, 2], devuelva esta matriz

 let testArray = Array(9).fill("") const winConditions = [ [0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6], ]; let xValue = "X"; let oValue = "O"; function checkWin(value, array) { return winConditions.some((cond) => cond.every((index) => array[index] == value)); } console.log(checkWin(xValue, testArray)); console.log(checkWin(oValue, testArray));
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar .find() en lugar de .some() , esto devolverá la primera matriz para la que la devolución de llamada .every() devuelve true . Puede usar esta matriz para determinar si hubo una victoria o no para un jugador en particular:

 const testArray = Array(9).fill(""); testArray[3] = testArray[4] = testArray[5] = "O"; // test winning position const winConditions = [ [0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6], ]; const xValue = "X"; const oValue = "O"; function getWinPos(value, array) { return winConditions.find((cond) => cond.every((index) => array[index] == value) ); } const xWinPos = getWinPos(xValue, testArray); const oWinPos = getWinPos(oValue, testArray); if(xWinPos) { // found a winning position row/col/diag for "X" console.log(xWinPos); } else if(oWinPos) { // found a winning row/col/diag for "O" console.log(oWinPos); }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda