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

86
Vistas
Lodash: realiza cálculos en una matriz de objetos

Estoy luchando por encontrar la función lodash correcta, si pudiera ayudarme, sería genial.

Tengo una matriz de:

 [ { '2002': 2, '2003': 1, '2004': 5 }, { '2002': 2, '2003': 5, '2004': 2 }, { '2002': 3, '2003': 2, '2004': 3 }, { '2002': 5, '2003': 4, '2004': 4 } ]

Como hay 4 entradas diferentes como se muestra a continuación:

[input1, input2, input3, input4]

Para cada año quiero realizar lo siguiente:

(input1 + input2 - input3) / input4

En el año 2002, la salida: (2 + 2 - 3) / 5 = 0.2

¿Hay una función auxiliar de lodash para generar:

 [ [ 2002, 0.2 ], [ 2003, 1 ], [ 2004, 1 ] ]

Gracias de antemano

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

0

Puede hacer esto muy directamente con javascript vainilla mapeando las Object.keys del primer objeto en la matriz y luego usando cada tecla para acceder a las propiedades relevantes de cada objeto en la matriz y realizar su cálculo en ellas.

 const input = [ { '2002': 2, '2003': 1, '2004': 5 }, { '2002': 2, '2003': 5, '2004': 2 }, { '2002': 3, '2003': 2, '2004': 3 }, { '2002': 5, '2003': 4, '2004': 4 } ] const calc = ([a, b, c, d]) => (a + b - c) / d; const result = Object.keys(input[0]).map(k => [k, calc(input.map(o => o[k]))]) console.log(result)

Una posible secuencia con lodash...

 const input = [ { '2002': 2, '2003': 1, '2004': 5 }, { '2002': 2, '2003': 5, '2004': 2 }, { '2002': 3, '2003': 2, '2004': 3 }, { '2002': 5, '2003': 4, '2004': 4 } ]; const result = _.chain( _.mergeWith(...input, (a, b) => [].concat(a, b)) ) .mapValues(([a, b, c, d]) => (a + b - c) / d) .toPairs() .value(); console.log(result);
 <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>

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