Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

105
Views
Cálculo en objetos de matriz que tienen los mismos valores de propiedad

Tengo una matriz como-

 const a = [ { value: 1, week: 'week1', }, { value: 2, week: 'week1', }, { value: 3, week: 'week16', }, { value: 4, week: 'week0', }, { value: 5, week: 'week16', }, ]

Quiero tener una matriz modificada de la siguiente manera:

 let modified = [ { value: 1.5, week: 'week1', }, { value: 4, week: 'week16', }, { value: 4, week: 'week0', }, ]

En esta matriz modificada, la semana duplicada se colocó solo una vez y el valor se reemplazó por el promedio del valor total en los objetos duplicados particulares.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puede recopilar los valores en un objeto y luego calcular el promedio dividiendo su suma entre la cantidad de valores disponibles para una semana determinada:

 const a = [{ value: 1, week: 'week1', }, { value: 2, week: 'week1', }, { value: 3, week: 'week16', }, { value: 4, week: 'week0', }, { value: 5, week: 'week16', }]; const result = Object.entries( a.reduce((a, {value, week}) => ({ ...a, [week]: [...a[week] || [], value] }), {}) ).map(([week, values]) => ({ week, value: values.reduce((a, v) => a + v, 0) / values.length })); console.log(result);

about 4 years ago · Juan Pablo Isaza Report

0

puedes hacerlo de manera simple como a continuación,

1.Crear un mapa y agregar valores de semana similar y mantener su cuenta 2.Luego creado modificado a partir de eso.

 const a = [ { value: 1, week: 'week1', }, { value: 2, week: 'week1', }, { value: 3, week: 'week16', }, { value: 4, week: 'week0', }, { value: 5, week: 'week16', }, ]; const helperMap = {} a.forEach((obj) => { if (!!helperMap[obj.week]) { helperMap[obj.week]['sum'] += obj.value; helperMap[obj.week]['count'] += 1; } else { helperMap[obj.week] = { sum: obj.value, count: 1 }; } }); const modified = []; for (let week in helperMap) { let avgValue = helperMap[week]['sum'] / helperMap[week]['count']; modified.push({ week, value: avgValue }); } console.log(modified)

Podemos hacerlo en formas cortas usando funciones incorporadas también, pero será mejor entender el concepto

about 4 years ago · Juan Pablo Isaza Report

0

 const a = [ { value: 1, week: 'week1', }, { value: 2, week: 'week1', }, { value: 3, week: 'week16', }, { value: 4, week: 'week0', }, { value: 5, week: 'week16', }, ] let modified = []; a.forEach(item => { let match = modified.find(m => m.week === item.week); if (match) match.value = (match.value + item.value); else modified.push(item); }); modified.forEach(m => m.value = m.value / a.filter(a => a.week === m.week).length); console.log(modified)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!