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

206
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 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