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

156
Vistas
aplane la matriz de objetos con claves dinámicas y sume solo los valores con "_abs" en el nombre de la clave

Tengo una matriz de objetos que se ve así:

 [{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2, ...},{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2, ...},{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2, ...},{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2, ...}]

Puede haber hasta n elementos en cada objeto, cada uno consta de un valor _perc y un valor _abs. Quiero reducir la matriz a solo 1 entrada y sumar cada valor _abs, el _perc puede ser cualquier otra cosa, como "-".

Un resultado esperado sería:

 {"A_abs": 16, "A_perc": "-" "B_abs": 16, "B_perc": "-" "C_abs": x, "C_perc": "-", ...}

La solución de esta pregunta no me satisface completamente porque no sé cómo adaptar la función para sumar solo los valores "_abs".

¿Cómo adaptar esta función para sumar solo los valores _abs, independientemente de cuántas entradas tenga el objeto?

 var data = [{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2},{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2},{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2},{"A_abs":4,"A_perc":2, "B_abs":4,"B_perc":2}], result = data.reduce((r, o) => (Object.entries(o).forEach(([k, v]) => r[k] = (r[k] || 0) + v), r), {}); console.log(result);

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

0

Puede verificar si la key termina con _abs y solo si lo hace, agrega los valores; de lo contrario, simplemente asigna un valor de - .

 const data = [ { A_abs: 4, A_perc: 2, B_abs: 4, B_perc: 2 }, { A_abs: 4, A_perc: 2, B_abs: 4, B_perc: 2 }, { A_abs: 4, A_perc: 2, B_abs: 4, B_perc: 2 }, { A_abs: 4, A_perc: 2, B_abs: 4, B_perc: 2 }, ], result = data.reduce( (r, o) => ( Object.entries(o).forEach(([k, v]) => k.endsWith("_abs") ? (r[k] = (r[k] || 0) + v) : (r[k] = "-") ), r ), {} ); console.log(result);

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