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

151
Vistas
Reducir suma y resta matriz anidada

tengo un problema con reducir.

Quiero agregar el resto de las matrices de la primera matriz en la matriz. array = [[a,b],[c,d],[e,f]] el orden por venir es: (ab)+(cd)+(ef), pero mi código no funciona :((

mi código es:

 const sumAndSubtract = (numberInNestedArray) => { return numberInNestedArray.reduce((acc, cur, ind, arr) => { const firstSubtract = arr[0][0] - arr[0][1]; const otherSubtract = acc[ind] - cur[ind]; console.log(firstSubtract); console.log(otherSubtract); return firstSubtract + otherSubtract; }) } console.log(sumAndSubtract([ [10, 0], [5, 7], [6, 9] ]))

resultado esperado: 10 + (-2)+(-3)

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Use reduce de la siguiente manera, donde a es la suma acumulada y b y c son los valores atómicos recuperados de cada par:

 let result = [[10, 0], [5, 7], [6, 9]].reduce((a, [b, c]) => a+bc, 0); console.log(result);

En su intento, lo siguiente no está bien:

  • La expresión arr[0][0] - arr[0][1] . Esto solo mira el primer par en la matriz y lo hace en cada iteración. En su lugar, deberías estar haciendo cur[0] - cur[1] .

  • La expresión acc[ind] - cur[ind] : ind es el índice en la matriz externa, que toma los valores 0, 1 y 2 para la entrada de ejemplo. acc[ind] es un par, no un número y cur[ind] en algún momento será una referencia fuera de rango, ya que cur solo tiene dos valores.

  • La llamada a reduce debe obtener el argumento de valor inicial, porque sin él, el primer par será el valor inicial de acc , que no desea: desea un número . Así que pase 0 como argumento de valor inicial para reduce .

  • Lo que llamas otherSubtract ya se proporciona como acc , por lo que en realidad no necesitas esta variable.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría mapear las restas y sumar los valores más tarde.

 const add = (a, b) => a + b, subtract = (a, b) => a - b, sumAndSubtract = array => array .map(a => a.reduce(subtract)) .reduce(add); console.log(sumAndSubtract([[10, 0], [5, 7], [6, 9]]));

about 4 years ago · Juan Pablo Isaza Denunciar

0

La forma más corta de hacerlo será:

 numberInNestedArray.reduce((acc, cur) => acc + (cur[0] - cur[1]), 0)
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