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

131
Visualizações
Cómo crear una matriz anidada de diferente longitud a partir de una matriz multidimensional

Tengo una matriz que se ve así:

 arr = [[1,2,3], [4,5,6], [7,8,9]]

He inicializado una matriz vacía y quiero colocar las diagonales de la matriz dentro de la nueva matriz. Así que he intentado esto:

 arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] new_arr = []; tail = arr.length - 1; for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[i].length; j++) { if (j == i) { new_arr.push(arr[i][j]); } if (j == tail) { new_arr.push(arr[i][j]); tail--; } } } console.log(new_arr)

La lógica parece funcionar, pero parece que no puedo obtener la estructura correcta. Lo que quiero es anidar dos matrices dentro de la nueva matriz de esta manera:

 [[1,5,9],[3,5,7]]

Pero lo que obtengo es una matriz con los valores correctos desordenados. ¿Cómo obtener el resultado esperado? Cualquier ayuda es apreciada. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

 var arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; var diagonal1 = []; var diagonal2 = []; for (var i = 0; i < arr.length; i++) { diagonal1.push(arr[i][i]); diagonal2.push(arr[i][arr.length - i - 1]); } var new_arr = [diagonal1, diagonal2]; console.log(new_arr)

about 4 years ago · Juan Pablo Isaza Relatório

0

La siguiente solución funcionaría si el ancho y el alto de la matriz numérica son siempre iguales.

 const arr = [[1,2,3], [4,5,6], [7,8,9]]; const result = [[],[]]; arr.map((row,index) => { result[0].push(row[0+index]); result[1].push(row[row.length - index - 1]); }); console.log(result); // [[1,5,9],[3,5,7]]
about 4 years ago · Juan Pablo Isaza Relatório

0

Necesita tener 2 matrices temporales separadas. Y no necesitas bucles anidados . Puede optimizar el código de esta manera con un solo ciclo si comprende las matemáticas.

 arr = [[1,2,3], [4,5,6], [7,8,9]]; function findDiagonals(arr) { const diagonal_1 = []; const diagonal_2 = []; for( let i = 0; i < arr.length; i++ ) { diagonal_1.push(arr[i][i]); diagonal_2.push(arr[i][arr.length - (i+1)]); } return [diagonal_1, diagonal_2]; } console.log(findDiagonals(arr));

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