Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!