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

252
Visualizações
matriz (matriz de matrices|matriz bidimensional) suma sin bucles. Hay una mejor manera?

Estaba pensando en una forma de hacer una suma de matriz sin tener que usar bucles y me doy cuenta de que usar Array.prototype.map() es una buena manera.

 var multArray = [[1,2,3,4,5],[6,7,8,9,10]]; var multArray2=[[1,2,3,4,5],[6,7,8,9,10]]; total = multArray.map((array, arrayIndex) => array.map((value, index) => value + multArray2[arrayIndex][index])); console.log(total);

¿Sabes si hay un camino mejor o más corto?

¡Gracias!.

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

0

"Mejor" es subjetivo, pero puedes hacer algo como esto:

 var multArray = [[1,2,3,4,5],[6,7,8,9,10]]; var multArray2=[[1,2,3,4,5],[6,7,8,9,10]]; console.log( [...Array(multArray.length).keys()].map( f => [...Array(multArray[f].length).keys()].map( s => multArray[f][s] + multArray2[f][s] ) ) )

Pero en mi opinión, el tuyo es más legible

about 4 years ago · Juan Pablo Isaza Relatório

0

Creo que un ciclo for simple es el más explícito en términos de mostrar claramente lo que está sucediendo.

 const multArray = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray2 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const total = []; for (let i = 0; i < multArray.length; i++) { total[i] = []; for (let j = 0; j < multArray[i].length; j++) { total[i][j] = multArray[i][j] + multArray2[i][j]; } } console.log(total);

Pero si realmente no quiere, puede definir algunas funciones de utilidad y encadenarlas.

 const multArray = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray2 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const zip = (a, b) => a.map((k, i) => [k, b[i]]); const sum = (arr) => arr.reduce((a, b) => a + b, 0); const total = zip(multArray, multArray2).map((c) => zip(...c).map(sum)); console.log(total);

Se puede obtener una ventaja real al redefinir la función zip() para aceptar cualquier cantidad de parámetros y, por lo tanto, permitirle totalizar cualquier cantidad de matrices simplemente pasándolas todas a la llamada zip inicial (y evitando escribir explícitamente bucles anidados para cada matriz adicional ).

 const multArray = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray2 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const multArray3 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],]; const zip = (...rows) => [...rows[0].keys()].map((k) => rows.map((row) => row[k])); const sum = (arr) => arr.reduce((a, b) => a + b, 0); const sum_mult_arrays = (...arrs) => zip(...arrs).map((c) => zip(...c).map(sum)); const total = sum_mult_arrays(multArray, multArray2, multArray3); console.log(total);

Veael equivalente de Javascript de la función zip de Python para una gran discusión sobre el comprimir.

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