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

215
Vistas
¿Cómo obtener el siguiente elemento en una matriz con recursividad?

Quiero recorrer una matriz con una función recursiva, pero no sé cómo hacerlo.

Lo que quiero lograr es esto:

  1. Obtenga las dos primeras matrices en numbersArray .
  2. Obtenga los primeros números en ambas matrices y súmelos y luego divida por 10.
  3. Inserte el resultado en sumOfNumbers .
  4. Obtenga el siguiente conjunto de números y en numbersArray y repita hasta que se hayan calculado todos los números.
  5. Obtenga el siguiente conjunto de dos matrices en numbersArray y repita.

Esto es lo que tengo ahora. Solo obtiene el primer elemento de una matriz:

 function unitTest(block1, block2, result = []) { let sumOfNumbers = [] let numbersArray = [ [9, 2, 3, 4, 5, 6, 7, 8, 9, 0], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], ] block1 = numbersArray[0][0] block2 = numbersArray[1][0] sumOfNumbers = (block1 + block2 ) % 10 result.push(sumOfNumbers) console.log(sumOfNumbers) console.log(result) if (result.length == 10) { return result }else{ // unitTest() }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

En recursividad necesitas un caso base y un caso recursivo. Puse toda la matriz como un parámetro y un índice para saber qué elemento de la matriz estamos procesando. La recursividad de parada ocurre cuando ese índice es mayor que la matriz. En casos recursivos, tomamos 2 arreglos y hacemos las operaciones. Entonces, llamamos recursivos a los 2 bloques siguientes

 function unitTest(numbersArray, arrayIndex, result = []) { if (arrayIndex + 1 < numbersArray.length) { var block1 = numbersArray[arrayIndex] var block2 = numbersArray[arrayIndex + 1] for (var i = 0; i < block1.length; i++){ sumOfNumbers = (block1[i] + block2[i]) % 10; result.push(sumOfNumbers); console.log(sumOfNumbers); } unitTest(numbersArray, arrayIndex + 2, result); } else { console.log(result); } } let sumOfNumbers = [] let numbersArray = [ [9, 2, 3, 4, 5, 6, 7, 8, 9, 0], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], ] unitTest(numbersArray, 0)
about 4 years ago · Juan Pablo Isaza Denunciar

0

por lo que entiendo, está tratando de calcular la suma% 10 de cada elemento de la matriz 0-1, 2-3, 4-5, ...

El uso de la recursividad aquí no es necesario y un ciclo simple hará el trabajo.

Aquí está la solución que podría sugerir

 const numbersArray = [ [9, 2, 3, 4, 5, 6, 7, 8, 9, 0], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [9, 4, 3, 2, 1, 0, 9, 8, 7, 6], [1, 2, 3, 4, 5, 6, 7, 8, 9, 7] ]; const results = []; for (let i = 0; i < numbersArray.length - 1; i += 2) { const result = numbersArray[i].map((value, index) => { return (value + numbersArray[i + 1][index]) % 10; }); results.push(result); } console.log(results);

La constante de resultados es del tipo number[][] que contiene las matrices del cálculo para cada par de la matriz original.

Espero que te ayude :)

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