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

71
Vistas
La suma de los mismos valores en un campo uno al lado del otro

Tengo dos matrices:

 const data = [ 250, 250, 500, 500 ] const labels = [ '2022-05-10', '2022-06-10', '2022-07-10', '2022-07-10' ]

Cada fecha en la matriz de labels tiene un valor correspondiente en la matriz de data , y necesito sumar los valores para cada día que sea igual, por lo que el resultado debería verse así:

 const data = [ 250, 250, 1000 ] const labels = [ '2022-05-10', '2022-06-10', '2022-07-10' ]

¿Cómo puedo hacer esto?

about 4 years ago · Santiago Gelvez
3 Respuestas
Responde la pregunta

0

 const labels = ['2022-05-10', '2022-06-10', '2022-07-10', '2022-07-10']; const data = [250, 250, 500, 500]; const restructure = (keysArray, valuesArray) => keysArray.reduce((accumu, current, index) => { current = { [current]: valuesArray[index] }; for (const [key, val] of Object.entries(current)) { accumu[key] = (accumu[key] ?? 0) + val; } return accumu; }, {}); const prettyPrint = (title, obj) => console.log(`${title} =>`, JSON.stringify(obj)); const result = restructure(labels, data); prettyPrint('labels', Object.keys(result)); prettyPrint('data', Object.values(result));

about 4 years ago · Santiago Gelvez Denunciar

0

 const data = [ 250, 250, 500, 500 ]; const labels = [ '2022-05-10', '2022-06-10', '2022-07-10', '2022-07-10' ]; var newData = new Array(); var newLabels = new Array(); labels.forEach(myFunction); newLabels.forEach(myFunction2); function myFunction(item,index) { console.log(item + ',' + index); if(!newLabels.includes(item) ) { newLabels.push(item); newData.push(data[index]); } else { var newIndex = newLabels.indexOf(item); console.log(newIndex); var added = newData[newIndex] + data[index]; newData[newIndex] = added; } } function myFunction2(item,index){ console.log(item + ',' + index); console.log(newData[index]); }

about 4 years ago · Santiago Gelvez Denunciar

0

Mi javascript está bastante oxidado, pero esto une las dos matrices y luego crea un objeto donde agrego al objeto si esa clave ya existe, o lo creo si no existe. (¿Eso podría ser lo que hace una respuesta de reduce adecuada?)

 zip = (...rows) => [...rows[0]].map((_, c) => rows.map(row => row[c])) let data = [250, 250, 500, 500] let labels = ['2022-05-10', '2022-06-10', '2022-07-10', '2022-07-10'] const values = zip(labels, data) const output = {} for (const [date, value] of values) { if (Object.keys(output).includes(date)) { output[date] += value } else { output[date] = value } } data = Object.values(output) labels = Object.keys(output) console.log(data) console.log(labels)

about 4 years ago · Santiago Gelvez 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